002_MongoDB 文档的CURD
CURD
1. 基本操作
show dbs;
use [collectionName];
db.[collectionName].find();
db.[collectionName].drop();
2. 【remove】 db.collection.remove(条件)
db.tests.remove();
db.tests.remove({"_id":{$gt:10}});
3. 【insert】 db.collection.insert( [ObjectData] )
db.collection.insertMany( [ObjectData] );
db.tests.find();
// can only insert one document
db.tests.insert({"name":"Admin"});
// insert several documents use `[Objects]`
db.tests.insert( [{"name":"User1","pssword":"1873344****"}, {"name":"User2", "pssword":"1873344****"}] );
// insert several documents use `[Objects]`
db.tests.insertMany([{"name":"GuestA","access":"2019.1.15"} , {"name":"GuestB", "access":"2019.1.16"}])
db.tests.insertMany([{"name":"GuestC", "access":"2019.1.17"}]);
4. 【update】 db.collection.update(query, update)
db.tests.update({"name":"User1"}, {"password":"password"}); //整条替换
从
{ "_id" : ObjectId("5c6780b5243213c7c14d4252"), "name" : "User1", "pssword" : "1873344****" }
替换为
{ "_id" : ObjectId("5c6780b5243213c7c14d4252"), "password" : "password" }
-修改器- $set ···· update || create ···· $set:{ key:value, "key1":value}
db.tests.update( {"_id":9}, {$set:{name:"UserA"}} );
-修改器- $unset ···· delete ···· $unset: {"key":"value", key1:value}
db.tests.update( {"_id":9}, {$set:{name:"UserA"}} );
-修改器- $inc ···· 字段值的定量增减。 ···· $inc:{ key: 1}
db.tests.update( {"_id":9}, {$inc:{age:2, score:-2}} );
-修改器- $push ···· push || create and push 只能填一个 ···· $push:{arr:"sun"}
db.tests.update( {"_id":9}, {$push:{arr: "A tip"}}):
-修改器- $each ···· 辅助$push添加多个 ···· $push:{arr:{$each:['img1','img2','img3']}}
db.tests.update( {"_id":9}, {$push:{ arr: {$each:["a","b","c"]} } } );
-修改器- $slice ···· 可以使用$slice配合$push修改器,这样就会保证数组不会超过最大长度。 ($slice值*必须是负数。)
限定长度同时使用$sort指定排序字段,以按一定规则对数据进行清理。 ···· $push:{arr:{ $each:['url1','url2'], $slice: -5 }}
db.tests.update({"_id":9}, {$push:{ arr:{ $each:['a','b','c'] , $slice:-5 }}}):
-修改器- $pop ···· 数组元素的删除 ,从开头或结尾 pop 一个 ···· $pop:{'arr': 1}
db.tests.update({"_id":9}, {$pop:{arr:1}}); ( 1从后边删一个, -1从最前面删一个 )
-修改器- $pull ···· 删除某个数组的某个值 ···· $pull:{ arr: "jim2 "} (删掉某个值)
-修改器- $addToSet ···· 对新插入的值去重插入 ····{$addToSet:{filed:value}}
5. 【find】 db.collection.find(query, projection) · projection指定返回的field
// $lt,$gt,$lte,$gte
db.tests.find({"score":{$lt:60}})
// 查找范围 (between)
db.tests.find("age":{$gt:18, $lt:60}, "gender":"male")
// 根据 _id 查找
db.tests.find({"_id":ObjectId("5c6780b5243213c7c14d4252")})
-查询操作符- $in
db.tests.find({"_id":{$in:[1,2,3]})
// 指定返回的field
db.tests.find({"age":{$gt:20,$lt:40}}, { _id:0, info:0, age:1, name:1 })
6. 分页查询(limit、skip)与查询结果排序(sort)
limit()指定查询结果数量
db.COLLECTION_NAME.find().limit(NUMBER):db.tests.find().limit(2)
skip()指定查询偏移量
db.COLLECTION_NAME.find().limit(NUMBER).skip(NUMBER) : db.tests.find().limit(2).skip(1)
sort()实现查询结果排序
sort()方法接受一个文档,其中包含的排序的字段,及要指定排序方式。排序方式为可选值为:1和-1,1表示使用升序排列,-1表示降序排序。
db.COLLECTION_NAME.find().sort({KEY:1}) :

浙公网安备 33010602011771号