mongoDB更新和删除文档(document)

整理来自mongodb

https://www.shiyanlou.com/courses/running/57数据库

 

启动ruby

$ sudo service mongodb start 

进入MongoDB命令行操做界面,在命令行中敲exit能够退出bash

$ mongo 

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

 

建立数据库

范例:进入mongoDB命令行操做界面以后,进行以下操做:app

> use Chenshi switched to db Chenshi 

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

> db Chenshi 

您也能够经过使用show dbs命令查看全部的数据库spa

> show dbs 

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

 

删除数据库 -db.dropDatabase()

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

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

建立集合 -createCollection()

语法:

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,若是为ture则建立一个固定大小的集合,当其条目达到最大时能够自动覆盖之前的条目。在设置其为ture时也要指定参数大小;
  • autoIndexID:类型为Boolean,默认为false,若是设置为ture,则会在_id field.s上自动建立索引;
  • size:若是capped为ture须要指定,指定参数的最大值,单位为byte;
  • max:指定最大的文档数。 在mogodb中也能够不用建立集合,由于在建立文档的时候也会自动的建立集合

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

操做实例:

> use Chenshi switched to db Chenshi > show collections shiyanlou shiyanlou2 system.indexes > db.shiyanlou.drop() ture > show collections 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: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

更新文档 -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()
相关文章
相关标签/搜索