1. 进入mongodb shell

$ mongo
MongoDB shell version v3.4.4
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.4

>

2. 退出mongodb shell

> exit
bye

3. 查看mongodb版本号

> db.version()
3.4.4

4. 查看数据库操作命令

> db.help()

5. 显示数据库列表

> show dbs

6. 切换或创建数据库

> use db_name

示例:

> use shake
switched to db shake

p.s. 如果数据库不存在, 则创建数据库, 否则切换到指定数据库.

7. 显示所有用户

> show users

8. 显示当前数据库中的集合

> show collections

p.s. 类似关系数据库中的表table

9. 显示集合操作命令

> db.yourCollection.help()

p.s. yourCollection是集合名

10. 显示当前所用的数据库

> db

11. 删除已有的字段

> db.yourcollection.update({},{$unset:{"yourfield":""}},false,true)

p.s. yourCollection是集合名, yourfield是要删除的字段

示例:

> db.user.update({},{$unset:{"balance":""}},false,true)
WriteResult({ "nMatched" : 2, "nUpserted" : 0, "nModified" : 2 })
> 

12. 新增字段

> db.yourcollection.update({}, {$set:{'yourfield': ""}}, {multi:true})

p.s. yourCollection是集合名, yourfield是要新增的字段

示例:

> db.user.update({}, {$set:{'follower_num_limit': 0}}, {multi:true})
WriteResult({ "nMatched" : 2, "nUpserted" : 0, "nModified" : 2 })
> 

13. 删除当前数据库

删除当前数据库,默认为 test,你可以使用 db 命令查看当前数据库名。

> db.dropDatabase()

最后,我们再通过 show dbs 命令数据库是否删除成功:

> show dbs
local  0.078GB
test   0.078GB
> 

14. 插入文档

MongoDB 使用 insert() 或 save() 方法向集合中插入文档, 语法如下:

db.COLLECTION_NAME.insert(document)

插入文档你也可以使用 db.COLLECTION_NAME.save(document) 命令。如果不指定 _id 字段 save() 方法类似于 insert() 方法。如果指定 _id 字段,则会更新该 _id 的数据。

示例:

db.user.insert({"name": "xx", "age";25, "gender": "male"})
WriteResult({ "nInserted" : 1 })

15. 更新文档

15.1. update()方法

MongoDB 使用 update() 和 save() 方法来更新集合中的文档.
update() 方法用于更新已存在的文档。语法格式如下:

> db.collection.update(
    <query>,
    <update>,
    {
        upsert: <boolean>,
        multi: <boolean>,
        writeConcern: <document>
    }
)

参数说明:

  • query : update的查询条件,类似sql update查询内where后面的。
  • update : update的对象和一些更新的操作符(如$,$inc…)等,也可以理解为sql update查询内set后面的
  • upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
  • multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
  • writeConcern :可选,抛出异常的级别。

示例:

> db.col.insert({
    title: 'MongoDB常用命令', 
    url: 'https://zhuxiongxian.cc',
    tags: ['mongodb', 'database', 'NoSQL']
})

接着通过 update() 方法来更新标题title:

> db.col.update({'title':'MongoDB常用命令'},{$set:{'title':'MongoDB'}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

以上语句只会修改第一条发现的文档,如果你要修改多条相同的文档,则需要设置 multi 参数为 true。

> db.col.update({'title':'MongoDB常用命令'},{$set:{'title':'MongoDB'}},{multi:true})
15.2. save()

save() 方法通过传入的文档来替换已有文档。语法格式如下:

> db.collection.save(
   <document>,
   {
     writeConcern: <document>
   }
)

参数说明:

  • document : 文档数据。
  • writeConcern :可选,抛出异常的级别。
15.3. 数据更新操作符

$inc

  • 用法:{$inc:{field:value}}
  • 作用:对一个数字字段的某个field增加value

$set

  • 用法:{$set:{field:value}}
  • 作用:把文档中某个字段field的值设为value

$unset

  • 用法:{$unset:{field:1}}
  • 作用:删除某个字段field

$push

  • 用法:{$push:{field:value}}
  • 作用:把value追加到field里。注:field只能是数组类型,如果field不存在,会自动插入一个数组类型

$pushAll

  • 用法:{$pushAll:{field:value_array}}
  • 作用:用法同$push一样,只是$pushAll可以一次追加多个值到一个数组字段内。

16. 删除文档

17. 查询文档

继续补充…