一、插入文檔
1、db.集合名.insert()
插入一個:db.user.insert({name:"Join",age:13,address:"beijing",isDelete:0})
插入多個:db.user.insert([{name:"Join",age:13,address:"beijing",isDelete:0},{name:"Join2",age:13,address:"beijing",isDelete:0},{name:"Join3",age:13,address:"beijing",isDelete:0}])
2、db.集合名.save()
指定_id則為修改更新:db.user.save({_id:ObjectId("234567892345678"),name:"Join",age:13,address:"beijing",isDelete:0})
不指定_id則和insert是一樣的,為新增:db.user.save({name:"Join4",age:13,address:"beijing",isDelete:0})
二、文檔更新
1、更新已經存在的文檔:db.集合名.update()
db.集合名.update(<query>,<update>,{upset:<boolean>,multi:<boolean>,writeConcern:<document>})
query:查詢條件
update操作符:$set----立即更新;$inc----在原有的基礎上累積增加後更新
multi:可選項,預設為false,如果為true則隻更新第一條
writeConcert:可選項,抛出異常的級别
eg:db.user.update({name:"Join"},{$set:{age:21}})
2、通過傳入文檔替換已有的文檔,db.集合名.save()
db.集合名.save(文檔資料,{writeConcern:<document>})
三、文檔删除
db.集合名.remove()
db.集合名.remove(<query>,{justOne:<boolean>,writeConcern:<document>})
四、文檔查詢
1、查詢集合中所有的文檔:db.集合名.find()
2、查詢符合要求的文檔:db.集合名.find(<query>,{<key>:1,<key>:2...}),query為判斷查詢的要求,key為查詢出顯示的哪些内容1為顯示
eg:db.user.find({age:21},{age:1,name:1})
3、以格式化的方式顯示:pretty()
eg:db.user.find().pretty()
4、查詢後顯示符合結果的第一條内容:findOne()
5、查詢條件 操作符
内容 | 符合 | 表達式 |
大于 | $gt | db.集合名.({<key>:{$gt:<value>}}) |
大于等于 | $gte | db.集合名.({<key>:{$gte:<value>}}) |
小于 | $lt | db.集合名.({<key>:{$lt:<value>}}) |
小于等于 | $lte | db.集合名.({<key>:{$lte:<value>}}) |
等于 | : | db.集合名.({<key>:<value>}) |
不等于 | $ne | db.集合名.({<key>:{$ne:<value>}}) |
使用_id查詢 | _id | db.集合名.({"_id":ObjectId("id值")}) |
符合結果的數量 | count | db.集合名.({<key>:<value>}).count() |
查詢結果中某個字段是否包含某個值 | /包含的值/ | db.集合名.({name:/io/}) |
查詢結果中某個字段是否以某值開頭 | /^包含的值/ | db.集合名.({name:/^J/}) |
6、條件查詢 and 、or
and:db.集合名.find({<key>:<value>,<key2>:<value2>,<key3>:<value3>})
or :db.集合名.find({$or:[{<key>:<value>},{<key2>:<value2>}]})
7、limit、skip
limit():讀取指定數量的資料内容
eg:db.集合名.find().limit(5) 讀取前5條資料
skip():跳過指定數量的資料内容
eg:db.集合名.find().skip(5) 跳過前5條資料
8、排序sort
db.集合名.find().sort({key:1})
1為升序排列,-1為降序排列