打开 MongoDB Shell

mongo

image.png

数据库基本操作

查看当前指向的数据库

shell 会连到 MongoDB 服务器的默认数据库 test,并将这个数据库连接赋值给全局变量 db。
这个变量是通过 shell 访问 MongoDB 的主要入口点。

db

image.png

创建数据库

使用 use 命令创建数据库,如果数据库不存在,则创建数据库,否则切换到指定数据库。

use demodb1

image.png

现在,如果查看 db 变量,会发现其正指向 demodb1 数据库:

image.png

创建集合

通过 db 变量的 createCollection 方法,可以创建新的集合。
命令格式:db.createCollection(name, options)
例如,在 demodb1 数据库下创建 myCollection1 和 myCollection2 两个集合,可以执行以下
命令:

db.createCollection("myCollection1")
db.createCollection("myCollection2")

image.png

对集合重命名

通过 db 变量,可以访问其中的集合。例如,通过 db.myCollection1 可以返回当前数据库的
myCollection1 集合。
使用 renameCollection 方法,可以对已有集合进行重新命名。

db.myCollection1. renameCollection("blob")

image.png

查看集合列表

使用 show collections 命令查看数据库中所有集合的列表。

show collections

image.png

删除指定的集合

使用 drop 方法可以删除指定的集合。

db.myCollection2.drop()

image.png

添加文档

使用 insert 方法可以将一个文档添加到集合中。下面以存储一篇博客文章为例进行操作。
首先,创建一个名为 post 的局部变量。这是一个 JavaScript 对象,用于表示对应该博客文章的一个文档。它包含3个键:“title”(标题)、“content”(正文)、“date”(发布日期)。

image.png

查看文档

使用find方法可以查询集合里的全部文档。使用find时,shell会自动显示最多20个匹配的文档。

db.blog.find()

image.png

db.blog.findOne()

image.png

更新文档

使用 update 可以更新已有的文档。update接收(至少)两个参数:第一个是限定条件(用于匹配待更新的文档),第二个是新的文档。
假设要为之前写的文章增加评论功能,就需要增加一个新的键(字段),用于保存评论数组。
首先,修改变量 post,增加"comments“键:

post.comments = []

然后执行 update操作,用新版本的 post 文档替换标题为"My First Blog"的文章:

db.blog.update({title:"My First Blog"},post)

现在,文档已经有了"comments "键。再用findOne查看一下,可以看到新的键:

db.blog.findOne()

image.png

删除文档

使用 remove 方法可将文档从数据库中永久删除。如果没有使用任何参数,它会将集合内的所有文档全部删除。它可以接受一个作为限定条件的文档作为参数。例如,下面的命令会删除刚刚创建的那篇文章。

db.blog.remove({title:"My First Blog"})

再次执行查询后可以发现集合变为空值null。

db.blog.findOne()

image.png

查看所有数据库

使用 showdbs 命令可以列表显示出所有数据库。

show dbs

image.png
注意,新创建的数据库 demodb1 只有在插入数据后,才会显示在数据库列表中。

删除数据库

使用 dropDatabase 方法可以删除当前数据库。

db.dropDatabase()

image.png

Shell 连接指定的 MongoDB 实例

  1. 连接任意的MongoDB实例
    执行下列命令,

    # mongo localhost:27017/demodb1
    # db

    则 db 现在就指向了localhost:27017上的 demodb1数据库。
    image.png

  2. 在启动 mongo shell 时,不连接到任何mongod实例有时可能会更加灵活方便。

    # mongo --nodb

    启动之后,在需要时运行 new Mongo(hostname) 命令就可以连接到指定的 mongod 实例了。

    > new Mongo("localhost:27017")
    > conn=new Mongo("localhost:27017")
    > db = conn.getDB("demodb1")

    image.png

Shell 中使用帮助

  1. help
    查找 mongodb 特有功能
  2. db.help()
    查看数据级别帮助
  3. db.blog.help()
    查看集合级别帮助
  4. db.blog.update
    如果希望知道一个函数的功能及其详细信息,可以在shell中输入函数名(不要在后面输入括号),这样就可以看到相应函数的JavaScript 实现代码。
    例如,想知道 update 函数的工作原理,或者记不清参数的顺序,就可以如下面这样去做。

image.png

附录

shell 中的多行操作:

如果你的代码行以左括号 ('('),左大括号 ('{')或左中括号 ('[') 结束,那么随后的一行将以省略号 ("...") 开始,直到你输入对应的右括号 (')'),右大括号 ('}')或右中括号 (']') 。 mongoshell在执行代码以前将一直等待右括号,右大括号或右中括号,如下例所示:

if ( x > 0 ) {
... count++;
... print (x);
... }

也可以通过按下两次回车键来结束这次输入:

> if (x > 0
...
...
>

pipiimmortal
13 声望0 粉丝