贺胖娇的编程之旅......

蓝桥教程-MongoDB基础教程-文档基本操作

2022.05.05

本系列基于对MongoDB基础教程的学习笔记

第二章:文档基本操作

数据库操作

启动

启动 MongoDB 服务,因为 MongoDB 并不随系统一起启动, 可能以下命令运行后会等一小段的时间才会启动完毕

sudo service mongodb start

退出使用exit命令

删除数据库

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

查看当前所在db

db

集合操作

创建集合

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 }

删除集合

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

文档操作

插入文档

> 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})

可以像以上内容先定义再insert,也可以直接insert,例如:

db.shiyanlou.insert({name:"test"})

更新文档

语法

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()

注意事项

默认的 update 函数只对一个文档更新,如果想作用所有文档,则需要加入 multi:true
示例:

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

修改字段名

语法:

db.getCollection("document_name").updateMany({},{"$rename":{"old_name":"new_name"}},false,true)

替换已存在的文档

语法

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})

注意事项

save是全部覆盖,如果只是更新部分字段,使用update

删除文档

语法

db.COLLECTION_NAME.remove(DELECTION_CRITERIA)

示例

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