1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
| 带参数的创建集合 * capped:类型为 Boolean,如果为 true 则创建一个固定大小的集合,当其条目达到最大时可以自动覆盖以前的条目。在设置其为 true 时也要指定参数大小; * autoIndexId:类型为 Boolean,默认为 false,如果设置为 true,则会在 _id 字段上自动创建索引; * size:如果 capped 为 true 则需要指定,指定参数的最大值,单位为 byte; * max:指定最大的文档数。 > db.createCollection("shiyanlou2", { capped : 1, autoIndexId : 1, size : 6142800, max : 10000 } )
插入文档 (先定义出来,再插入) > 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) sWriteResult({"nInserted":1}) #代表执行成功
更新文档 > 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 使用$set来完成局部更新的目的,不然整个值都会被替换掉。 > db.shiyanlou.update({"e-mail":"test@qq.com"},{$set:{"e-mail":"group@qq.com"}},{multi:true}) $set 局部更新 {multi:true} $inc 对原有值增加或减少时使用
替换已存在的文档 > 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 更好用。
删除文档 > db.COLLECTION_NAME.remove(DELECTION_CRITERIA)
下面来看一下删除文档的操作实例 > db.shiyanlou.remove({"name":"Bob"}) WriteResult({"nRemoved":1}) 其实 remove 函数的参数跟 update 函数的第一个参数一样,相当于查找条件,注意,不要误删!
|