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}) :

 

posted @ 2019-02-16 19:58  aocn  阅读(66)  评论(0)    收藏  举报