您的位置:首页 > 数据库 > Mongodb

mongoDB更新和删除文档(document)

2015-06-28 19:52 579 查看
整理来自
https://www.shiyanlou.com/courses/running/57
启动
$sudoservicemongodbstart

进入MongoDB命令行操作界面,在命令行中敲exit可以退出
$mongo

实验中的布尔类型的ture用1代替,false用0代替

创建数据库

范例:进入mongoDB命令行操作界面之后,进行如下操作:
>useChenshi
switchedtodbChenshi

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

您也可以通过使用showdbs命令查看所有的数据库
>showdbs

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

删除数据库-db.dropDatabase()

假设刚才我们使用语句db.computer.insert({"name":"shiyanlou"})对数据库Chenshi进行了数据插入操作
>showdbs#显示当前系统中的所有数据库
>useChenshi#转到Chenshi数据库
switchedtodbChenshi
>db.dropDatabase()
{"dropped":"Chenshi","ok":1}
>showdbs

创建集合-createCollection()

语法:
db.createCollection(name,options)

参数描述:name:创建的集合名称options:是一个作为初始化的文档(可选)范例:
>db.createCollection("shiyanlou")#无参数
{"ok":1}
>showcollections
shiyanlou
system.indexes
>db.createCollection("shiyanlou2",{capped:1,autoIndexID:1,size:6142800,max:10000})#带参数
{"ok":1}

参数描述:capped:类型为Boolean,如果为ture则创建一个固定大小的集合,当其条目达到最大时可以自动覆盖以前的条目。在设置其为ture时也要指定参数大小;autoIndexID:类型为Boolean,默认为false,如果设置为ture,则会在_idfield.s上自动创建索引;size:如果capped为ture需要指定,指定参数的最大值,单位为byte;max:指定最大的文档数。在mogodb中也可以不用创建集合,因为在创建文档的时候也会自动的创建集合

删除集合-db.COLLECTION.drop()

操作实例:
>useChenshi
switchedtodbChenshi>showcollections
shiyanlou
shiyanlou2
system.indexes
>db.shiyanlou.drop()
ture
>showcollections
shiyanlou2
system.indexes

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

插入文档-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:53PM"}]})
>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:34AM"}]})
>doc1=({"name":"peter","position":"teacher"})#先定义文档
>useChenshi switchedtodbChenshi>db.shiyanlou.insert(userdoc1)
WriteResult({"nInserted":1})
>db.shiyanlou.insert(userdoc2)
WriteResult({"nInserted":1})
>db.shiyanlou.insert(doc1)
WriteResult({"nInserted":1})

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

更新文档-db.COLLECTION_NAME.update(SELECTION_CRITERIA,UPDATED_DATA)

操作实例:
>db.shiyanlou.update({"user_id":"02","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:ture操作实例:
db.shiyanlou.update({"e-mail":"test@qq.com"},{$set:{"e-mail":"group@qq.com"}},{multi:ture})


替换已存在的文档-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})

跟update差不多,但是update更好用

删除文档-db.COLLECTION_NAME.remove(DELECTION_CRITERIA)

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

其实remove函数的参数跟update函数的第一个参数一样,相当于查找条件,注意,不要误删!删除后可以用查找命令确认数据:
>db.shiyanlou.find()


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: