绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
MongoDB系列 | 文档操作(三)
2020-05-22 10:42:38

1 . 创建数据库

范例:

进入 MongoDB 命令行操作界面之后,进行如下操作:

> use Chenshi
switched to db Chenshi

您可以使用 db 命令查看您当前选择的数据库:

> db
Chenshi

您也可以通过使用 show dbs 命令查看所有的数据库:

> show dbs

在这条命令之后您刚才创建的 Chenshi 不会显示,它只有在向数据库中插入了数据之后才能显示。


2 . 删除数据库

语法:db.dropDatabase()

假设刚才我们使用语句 db.computer.insert({"name":"shiyanlou"}) 对数据库 Chenshi 进行了数据插入操作。

> show dbs      # 显示当前系统中的所有数据库
> use Chenshi   # 转到Chenshi数据库
switched to db Chenshi
> db.dropDatabase()
{"dropped":"Chenshi","ok":1}
> show dbs


3 . 创建集合

语法:db.createCollection(name,options)

参数描述:

  • name:创建的集合名称
  • options:是一个作为初始化的文档(可选)

范例:

> db.createCollection("shiyanlou") #无参数
{ "ok" : 1 }
> show collections
shiyanlou
system.indexes
> db.createCollection("shiyanlou2", { capped : 1, autoIndexId : 1, size : 6142800, max : 10000 } ) #带参数
{ "ok ": 1 }

参数描述:

  • capped:类型为 Boolean,如果为 true 则创建一个固定大小的集合,当其条目达到大时可以自动覆盖以前的条目。在设置其为 true 时也要指定参数大小;
  • autoIndexId:类型为 Boolean,默认为 false,如果设置为 true,则会在 _id 字段上自动创建索引;
  • size:如果 capped 为 true 则需要指定,指定参数的大值,单位为 byte;
  • max:指定大的文档数。

在 Mongodb 中也可以不用创建集合,因为在创建文档的时候也会自动的创建集合。


4 . 删除集合

语法:db.COLLECTION.drop()

操作实例:

> use Chenshi
switched to db Chenshi
> show collections
shiyanlou
shiyanlou2
system.indexes
> db.shiyanlou.drop()
true
> show collections
shiyanlou2
system.indexes

删除成功。

注意:当您要删除指定的集合时,用您想要删除的集合名称替代 COLLECTION 即可。


5 . 插入文档

语法:db.COLLECTION_NAME.insert(document)

操作实例:

> userdoc1=({"user_id":1,"name":"cloud","state":"active","actor":"user","e-mail":"test@qq.com","VM_num":2,"time":[{"date":"2014-08-12","hour":"10:53 PM"}] })
> userdoc2=({"user_id":2,"name":"testadmin","state":"active","actor":"admin","e-mail":"test@qq.com","VM_num":2,"time":[{"date":"2014-08-11","hour":"06:34 AM"}] })
> doc1=({"name":"peter","position":"teacher"})    #先定义文档

> use Chenshi
switched to db Chenshi
> db.shiyanlou.insert(userdoc1)
WriteResult({"nInserted":1})
> db.shiyanlou.insert(userdoc2)
WriteResult({"nInserted":1})
> db.shiyanlou.insert(doc1)
WriteResult({"nInserted":1})

插入文档成功,当然也可以直接将文档的内容作为函数的参数直接替代 document。


6 . 更新文档

语法:db.COLLECTION_NAME.update(SELECTION_CRITERIA,UPDATED_DATA)

操作实例:

> db.shiyanlou.update({"user_id":2,"e-mail":"test@qq.com"},{$set:{"e-mail":"group@qq.com"}})
WriteResult({"nMatched":1,"nUpserted":1,"nModified":1})
> db.shiyanlou.find()
  • 将 user_id=2 的文档的 e-mail 改为 group@qq.com
  • 个大括号内容标示查找条件,第二个大括号内容则表示更新后的数据
  • 默认的 update 函数只对一个文档更新,如果想作用所有文档,则需要加入 multi:true

操作实例:

db.shiyanlou.update({"e-mail":"test@qq.com"},{$set:{"e-mail":"group@qq.com"}},{multi:true})


7 . 替换文档

语法:db.COLLECTION_NAME.save({_id:ObjectId(),NEW_DATA})

操作实例:

> db.shiyanlou.save({"_id":ObjectId("53ea174ccb4c62646d9544f4"),"name":"Bob","position":"techer"})
WriteResult({"nMatched":1,"nUpserted":1,"nModified":1})

这里的 _id 对应的是要替换文档的 _id。

跟 insert 差不多,但是 save 更好用。


8 . 删除文档

语法:db.COLLECTION_NAME.remove(DELECTION_CRITERIA)

操作实例:

> db.shiyanlou.remove({"name":"Bob"})
WriteResult({"nRemoved":1})

其实 remove 函数的参数跟 update 函数的个参数一样,相当于查找条件,注意,不要误删!

删除后可以用查找命令确认数据:

> db.shiyanlou.find()

分享好友

分享这个小栈给你的朋友们,一起进步吧。

MongoDB资料专区
创建时间:2020-05-08 13:54:47
MongoDB是一个介于关系数据库和非关系数据库之间的产品。MongoDB是一个基于分布式文件存储 [1] 的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

技术专家

查看更多
  • 小雨滴
    专家
戳我,来吐槽~