MongoDB learning of [four]: mongoDB basic operations - add, delete, search

First, increase data

1, insert data insert
> db.c5.insert({name:"user1"});
WriteResult({ "nInserted" : 1 })
> db.c5.insert({name:"user2"});
WriteResult({ "nInserted" : 1 })
> db.c5.insert({name:"user3"});
WriteResult({ "nInserted" : 1 })
> db.c5.insert({name:"user4"});
WriteResult({ "nInserted" : 1 })
> db.c5.insert({name:"user5"});
WriteResult({ "nInserted" : 1 })
> db.c5.find();
{ "_id" : ObjectId("5d5e7b310bccde4320cfbfaf"), "name" : "user1" }
{ "_id" : ObjectId("5d5e7b390bccde4320cfbfb0"), "name" : "user2" }
{ "_id" : ObjectId("5d5e7b3d0bccde4320cfbfb1"), "name" : "user3" }
{ "_id" : ObjectId("5d5e7b430bccde4320cfbfb2"), "name" : "user4" }
{ "_id" : ObjectId("5d5e7b4a0bccde4320cfbfb3"), "name" : "user5" }


> db.c5.insert({name:"zhangsan", sex:"male", weight:"160"});
WriteResult({ "nInserted" : 1 })
> db.c5.find();
{ "_id" : ObjectId("5d5e7b310bccde4320cfbfaf"), "name" : "user1" }
{ "_id" : ObjectId("5d5e7b390bccde4320cfbfb0"), "name" : "user2" }
{ "_id" : ObjectId("5d5e7b3d0bccde4320cfbfb1"), "name" : "user3" }
{ "_id" : ObjectId("5d5e7b430bccde4320cfbfb2"), "name" : "user4" }
{ "_id" : ObjectId("5d5e7b4a0bccde4320cfbfb3"), "name" : "user5" }
{ "_id" : ObjectId("5d5e7c720bccde4320cfbfb4"), "name" : "zhangsan", "sex" : "male", "weight" : "160" }
Insert also inserts json
> db.c5.insert({name:"Yixiantian", post:{title:"kungfu", desc:"BaChiQuan"}});
WriteResult({ "nInserted" : 1 })
> db.c5.find();
{ "_id" : ObjectId("5d5e7b310bccde4320cfbfaf"), "name" : "user1" }
{ "_id" : ObjectId("5d5e7b390bccde4320cfbfb0"), "name" : "user2" }
{ "_id" : ObjectId("5d5e7b3d0bccde4320cfbfb1"), "name" : "user3" }
{ "_id" : ObjectId("5d5e7b430bccde4320cfbfb2"), "name" : "user4" }
{ "_id" : ObjectId("5d5e7b4a0bccde4320cfbfb3"), "name" : "user5" }
{ "_id" : ObjectId("5d5e7c720bccde4320cfbfb4"), "name" : "zhangsan", "sex" : "male", "weight" : "160" }
{ "_id" : ObjectId("5d5e7ce60bccde4320cfbfb5"), "name" : "user6" }
{ "_id" : ObjectId("5d5e7d0a0bccde4320cfbfb6"), "name" : "user6" }
{ "_id" : 5, "name" : "user55" }
{ "_id" : ObjectId("5d5f62cf8ee97b67104bcc89"), "name" : "Yixiantian", "post" : { "title" : "kungfu", "desc" : "BaChiQuan" } }
Insert can also insert an array
> db.c5.insert({name:"YeWen", student:["Bruce Lee", "liang", "many"]});
WriteResult({ "nInserted" : 1 })
> db.c5.find();
{ "_id" : ObjectId("5d5e7b310bccde4320cfbfaf"), "name" : "user1" }
{ "_id" : ObjectId("5d5e7b390bccde4320cfbfb0"), "name" : "user2" }
{ "_id" : ObjectId("5d5e7b3d0bccde4320cfbfb1"), "name" : "user3" }
{ "_id" : ObjectId("5d5e7b430bccde4320cfbfb2"), "name" : "user4" }
{ "_id" : ObjectId("5d5e7b4a0bccde4320cfbfb3"), "name" : "user5" }
{ "_id" : ObjectId("5d5e7c720bccde4320cfbfb4"), "name" : "zhangsan", "sex" : "male", "weight" : "160" }
{ "_id" : ObjectId("5d5e7ce60bccde4320cfbfb5"), "name" : "user6" }
{ "_id" : ObjectId("5d5e7d0a0bccde4320cfbfb6"), "name" : "user6" }
{ "_id" : 5, "name" : "user55" }
{ "_id" : ObjectId("5d5f62cf8ee97b67104bcc89"), "name" : "Yixiantian", "post" : { "title" : "kungfu", "desc" : "BaChiQuan" } }
{ "_id" : ObjectId("5d5f64408ee97b67104bcc8a"), "name" : "YeWen", "student" : [ "Bruce Lee", "liang", "many" ] }
Recommendation: Do not insert too complex hierarchical data, otherwise, when PHP to process the data, and will be very troublesome! 2, save data inserted


> db.c5.save({name:"user6"});
WriteResult({ "nInserted" : 1 })
> db.c5.find();
{ "_id" : ObjectId("5d5e7b310bccde4320cfbfaf"), "name" : "user1" }
{ "_id" : ObjectId("5d5e7b390bccde4320cfbfb0"), "name" : "user2" }
{ "_id" : ObjectId("5d5e7b3d0bccde4320cfbfb1"), "name" : "user3" }
{ "_id" : ObjectId("5d5e7b430bccde4320cfbfb2"), "name" : "user4" }
{ "_id" : ObjectId("5d5e7b4a0bccde4320cfbfb3"), "name" : "user5" }
{ "_id" : ObjectId("5d5e7c720bccde4320cfbfb4"), "name" : "zhangsan", "sex" : "male", "weight" : "160" }
{ "_id" : ObjectId("5d5e7ce60bccde4320cfbfb5"), "name" : "user6" }
If we insert "user6" What happens?
> db.c5.save({name:"user6"});
WriteResult({ "nInserted" : 1 })
> db.c5.find();
{ "_id" : ObjectId("5d5e7b310bccde4320cfbfaf"), "name" : "user1" }
{ "_id" : ObjectId("5d5e7b390bccde4320cfbfb0"), "name" : "user2" }
{ "_id" : ObjectId("5d5e7b3d0bccde4320cfbfb1"), "name" : "user3" }
{ "_id" : ObjectId("5d5e7b430bccde4320cfbfb2"), "name" : "user4" }
{ "_id" : ObjectId("5d5e7b4a0bccde4320cfbfb3"), "name" : "user5" }
{ "_id" : ObjectId("5d5e7c720bccde4320cfbfb4"), "name" : "zhangsan", "sex" : "male", "weight" : "160" }
{ "_id" : ObjectId("5d5e7ce60bccde4320cfbfb5"), "name" : "user6" }
{ "_id" : ObjectId("5d5e7ce60bccde4320cfbfb6"), "name" : "user6" }
We found more than one data, that "user6" already have, how can insert "user6"? This is because these two different "user6" the id, id just different, then they are not the same data.
Insert a data in a custom id's!
> db.c5.save({_id:5, name:"user55"});
WriteResult({ "nMatched" : 0, "nUpserted" : 1, "nModified" : 0, "_id" : 5 })
> db.c5.find();
{ "_id" : ObjectId("5d5e7b310bccde4320cfbfaf"), "name" : "user1" }
{ "_id" : ObjectId("5d5e7b390bccde4320cfbfb0"), "name" : "user2" }
{ "_id" : ObjectId("5d5e7b3d0bccde4320cfbfb1"), "name" : "user3" }
{ "_id" : ObjectId("5d5e7b430bccde4320cfbfb2"), "name" : "user4" }
{ "_id" : ObjectId("5d5e7b4a0bccde4320cfbfb3"), "name" : "user5" }
{ "_id" : ObjectId("5d5e7c720bccde4320cfbfb4"), "name" : "zhangsan", "sex" : "male", "weight" : "160" }
{ "_id" : ObjectId("5d5e7ce60bccde4320cfbfb5"), "name" : "user6" }
{ "_id" : ObjectId("5d5e7d0a0bccde4320cfbfb6"), "name" : "user6" }
{ "_id" : 5, "name" : "user55" }
Well, then we have just the statement is executed once, see what happens?
> db.c5.save({_id:5, name:"user55"});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 0 })
> db.c5.find();
{ "_id" : ObjectId("5d5e7b310bccde4320cfbfaf"), "name" : "user1" }
{ "_id" : ObjectId("5d5e7b390bccde4320cfbfb0"), "name" : "user2" }
{ "_id" : ObjectId("5d5e7b3d0bccde4320cfbfb1"), "name" : "user3" }
{ "_id" : ObjectId("5d5e7b430bccde4320cfbfb2"), "name" : "user4" }
{ "_id" : ObjectId("5d5e7b4a0bccde4320cfbfb3"), "name" : "user5" }
{ "_id" : ObjectId("5d5e7c720bccde4320cfbfb4"), "name" : "zhangsan", "sex" : "male", "weight" : "160" }
{ "_id" : ObjectId("5d5e7ce60bccde4320cfbfb5"), "name" : "user6" }
{ "_id" : ObjectId("5d5e7d0a0bccde4320cfbfb6"), "name" : "user6" }
{ "_id" : 5, "name" : "user55" }
We found that, this time, did not repeat insert "user55", why, because id, id if the same, save method will only change data without newly inserted data!

Second, delete data

3, remove deleted data
 
, for example, we deleted the collection c1
> db.c1.find();
{ "_id" : ObjectId("5d47e64862a767ca65d70324"), "name" : "LDR", "age" : "29" }
{ "_id" : ObjectId("5d47e7de62a767ca65d70325"), "name" : "SXL", "age" : "28", "gender" : "female", "home" : "TianShui" }
{ "_id" : ObjectId("5d47ea029db9b635a6868273"), "gender" : "male" }
>
>
> db.c1.remove();
2019-08-23T12:02:28.487+0800 E QUERY    [js] Error: remove needs a query :
DBCollection.prototype._parseRemove@src/mongo/shell/collection.js:362:1
DBCollection.prototype.remove@src/mongo/shell/collection.js:389:18
@(shell):1:1
Error, and this is why? 

It turned out that the entire document delete data when the syntax is db.c1.drop (), rather than db.c1.remove (). remove is used to conditionally delete data.
> db.c2.insert({name:"A"});
WriteResult({ "nInserted" : 1 })
> db.c2.insert({name:"B"});
WriteResult({ "nInserted" : 1 })
> db.c2.insert({name:"C"});
WriteResult({ "nInserted" : 1 })
> db.c2.insert({name:"D"});
WriteResult({ "nInserted" : 1 })
> db.c2.insert({name:"E"});
WriteResult({ "nInserted" : 1 })
> db.c2.find();
{ "_id" : ObjectId("5d64dd96b390e1ab45fa854a"), "name" : "A" }
{ "_id" : ObjectId("5d64dd9bb390e1ab45fa854b"), "name" : "B" }
{ "_id" : ObjectId("5d64dda1b390e1ab45fa854c"), "name" : "C" }
{ "_id" : ObjectId("5d64dda6b390e1ab45fa854d"), "name" : "D" }
{ "_id" : ObjectId("5d64ddabb390e1ab45fa854e"), "name" : "E" }
> db.c2.remove();
2019-08-27T15:37:36.617+0800 E QUERY    [js] Error: remove needs a query :
DBCollection.prototype._parseRemove@src/mongo/shell/collection.js:362:1
DBCollection.prototype.remove@src/mongo/shell/collection.js:389:18
@(shell):1:1
> db.c2.drop();
true
> db.c2.find();
Conditionally deleted
> db.c2.find();
{ "_id" : ObjectId("5d64de8db390e1ab45fa854f"), "name" : "E" }
{ "_id" : ObjectId("5d64de95b390e1ab45fa8550"), "name" : "D" }
{ "_id" : ObjectId("5d64de9bb390e1ab45fa8551"), "name" : "C" }
{ "_id" : ObjectId("5d64dea3b390e1ab45fa8552"), "name" : "B" }
{ "_id" : ObjectId("5d64dea8b390e1ab45fa8553"), "name" : "A" }
> db.c2.remove({name:"B"});
WriteResult({ "nRemoved" : 1 })
> db.c2.find();
{ "_id" : ObjectId("5d64de8db390e1ab45fa854f"), "name" : "E" }
{ "_id" : ObjectId("5d64de95b390e1ab45fa8550"), "name" : "D" }
{ "_id" : ObjectId("5d64de9bb390e1ab45fa8551"), "name" : "C" }
{ "_id" : ObjectId("5d64dea8b390e1ab45fa8553"), "name" : "A" }

Third, find data

4, find query data
 
a, a finding data "exact value"
> db.c5.find();
{ "_id" : ObjectId("5d5e7b310bccde4320cfbfaf"), "name" : "user1" }
{ "_id" : ObjectId("5d5e7b390bccde4320cfbfb0"), "name" : "user2" }
{ "_id" : ObjectId("5d5e7b3d0bccde4320cfbfb1"), "name" : "user3" }
{ "_id" : ObjectId("5d5e7b430bccde4320cfbfb2"), "name" : "user4" }
{ "_id" : ObjectId("5d5e7b4a0bccde4320cfbfb3"), "name" : "user5" }
{ "_id" : ObjectId("5d5e7c720bccde4320cfbfb4"), "name" : "zhangsan", "sex" : "male", "weight" : "160" }
{ "_id" : ObjectId("5d5e7ce60bccde4320cfbfb5"), "name" : "user6" }
{ "_id" : ObjectId("5d5e7d0a0bccde4320cfbfb6"), "name" : "user6" }
{ "_id" : 5, "name" : "user55" }
{ "_id" : ObjectId("5d5f62cf8ee97b67104bcc89"), "name" : "Yixiantian", "post" : { "title" : "kungfu", "desc" : "BaChiQuan" } }
{ "_id" : ObjectId("5d5f64408ee97b67104bcc8a"), "name" : "YeWen", "student" : [ "Bruce Lee", "liang", "many" ] }
>
>
> db.c5.find({name:"user5"});
{ "_id" : ObjectId("5d5e7b4a0bccde4320cfbfb3"), "name" : "user5" }
>
B, depending on the conditions of the query data a column
> db.c5.find({weight:"160"}, {name:1,sex:1});
{ "_id" : ObjectId("5d5e7c720bccde4320cfbfb4"), "name" : "zhangsan", "sex" : "male" }
Note: [name: 1] where 1 represents true. And I specify the display field, and did not specify _id, however, it was still my column out, this is the mongo feature. 

If I do not want _id, how to deal with?
> db.c5.find({name:"Yixiantian"},{post:1, _id:0});
{ "post" : { "title" : "kungfu", "desc" : "BaChiQuan" } }
So, when do not want _id field, through 0, to hide its display.
c, the conditional expression 

bulk insert a piece of data:
> for(i=1;i<15;i++){
... db.c3.insert({name:"user"+i, age:i});
... }
WriteResult({ "nInserted" : 1 })
> db.c3.find();
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8554"), "name" : "user1", "age" : 1 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8555"), "name" : "user2", "age" : 2 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8556"), "name" : "user3", "age" : 3 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8557"), "name" : "user4", "age" : 4 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8558"), "name" : "user5", "age" : 5 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8559"), "name" : "user6", "age" : 6 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa855a"), "name" : "user7", "age" : 7 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa855b"), "name" : "user8", "age" : 8 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa855c"), "name" : "user9", "age" : 9 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa855d"), "name" : "user10", "age" : 10 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa855e"), "name" : "user11", "age" : 11 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa855f"), "name" : "user12", "age" : 12 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8560"), "name" : "user13", "age" : 13 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8561"), "name" : "user14", "age" : 14 }
Queries older than 5 $ gt data
> db.c3.find({age:{$gt:5}});
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8559"), "name" : "user6", "age" : 6 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa855a"), "name" : "user7", "age" : 7 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa855b"), "name" : "user8", "age" : 8 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa855c"), "name" : "user9", "age" : 9 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa855d"), "name" : "user10", "age" : 10 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa855e"), "name" : "user11", "age" : 11 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa855f"), "name" : "user12", "age" : 12 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8560"), "name" : "user13", "age" : 13 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8561"), "name" : "user14", "age" : 14 }
Query data younger than the $ lt 5
> db.c3.find({age:{$lt:5}});
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8554"), "name" : "user1", "age" : 1 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8555"), "name" : "user2", "age" : 2 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8556"), "name" : "user3", "age" : 3 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8557"), "name" : "user4", "age" : 4 }
Queries older than the data is equal to $ gte 5
> db.c3.find({age:{$gte:5}});
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8558"), "name" : "user5", "age" : 5 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8559"), "name" : "user6", "age" : 6 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa855a"), "name" : "user7", "age" : 7 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa855b"), "name" : "user8", "age" : 8 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa855c"), "name" : "user9", "age" : 9 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa855d"), "name" : "user10", "age" : 10 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa855e"), "name" : "user11", "age" : 11 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa855f"), "name" : "user12", "age" : 12 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8560"), "name" : "user13", "age" : 13 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8561"), "name" : "user14", "age" : 14 }
Queries younger than equal to the data of $ lte 5
> db.c3.find({age:{$lte:5}});
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8554"), "name" : "user1", "age" : 1 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8555"), "name" : "user2", "age" : 2 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8556"), "name" : "user3", "age" : 3 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8557"), "name" : "user4", "age" : 4 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8558"), "name" : "user5", "age" : 5 }
5, count () the total number of statistical collection
> db.c3.count();
14
> db.c3.find().count();
14
6, sort () data sorting (-1, Descending; 1, ascending)
- Ascending
> db.c3.find().sort({age:1});
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8554"), "name" : "user1", "age" : 1 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8555"), "name" : "user2", "age" : 2 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8556"), "name" : "user3", "age" : 3 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8557"), "name" : "user4", "age" : 4 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8558"), "name" : "user5", "age" : 5 }
- Descending
> db.c3.find().sort({age:-1});
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8558"), "name" : "user5", "age" : 5 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8557"), "name" : "user4", "age" : 4 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8556"), "name" : "user3", "age" : 3 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8555"), "name" : "user2", "age" : 2 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8554"), "name" : "user1", "age" : 1 }
7, limit () skip () paging query
> db.c3.find().limit(5);
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8554"), "name" : "user1", "age" : 1 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8555"), "name" : "user2", "age" : 2 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8556"), "name" : "user3", "age" : 3 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8557"), "name" : "user4", "age" : 4 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8558"), "name" : "user5", "age" : 5 }

> db.c3.find().skip(1).limit(5);
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8555"), "name" : "user2", "age" : 2 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8556"), "name" : "user3", "age" : 3 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8557"), "name" : "user4", "age" : 4 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8558"), "name" : "user5", "age" : 5 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8559"), "name" : "user6", "age" : 6 }

> db.c3.find().skip(3).limit(6);
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8557"), "name" : "user4", "age" : 4 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8558"), "name" : "user5", "age" : 5 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8559"), "name" : "user6", "age" : 6 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa855a"), "name" : "user7", "age" : 7 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa855b"), "name" : "user8", "age" : 8 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa855c"), "name" : "user9", "age" : 9 }
Skip 5, 6 to take, in descending order (sorted first take)
> db.c3.find().skip(5).limit(5).sort({age:-1});
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa855c"), "name" : "user9", "age" : 9 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa855b"), "name" : "user8", "age" : 8 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa855a"), "name" : "user7", "age" : 7 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8559"), "name" : "user6", "age" : 6 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8558"), "name" : "user5", "age" : 5 }
>
In descending order, skipping five, six taken (taken after the first sort)
> db.c3.find().sort({age:-1}).skip(9).limit(5);
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8558"), "name" : "user5", "age" : 5 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8557"), "name" : "user4", "age" : 4 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8556"), "name" : "user3", "age" : 3 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8555"), "name" : "user2", "age" : 2 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8554"), "name" : "user1", "age" : 1 }
Statistics count with conditions () (0, ignore condition; 1, conditional)
> db.c3.find().sort({age:-1}).skip(2).limit(2).count(0);
14
Statistical wrong here! Why, count condition is 0, it means ignoring the middle, only the collection of statistics. So, where the arguments have to pass 1, the job:
> db.c3.find().sort({age:-1}).skip(2).limit(2).count(1);
2
8, $ all included
{ "_id" : ObjectId("5d64ec94350ff605d7b5549b"), "name" : "superMan", "post" : [ 1, 3, 5, 7, 9 ] }
> db.c3.find({post:{$all:[1,3,4]}});

> db.c3.find({post:{$all:[1,3,5,7]}});
{ "_id" : ObjectId("5d64ec94350ff605d7b5549b"), "name" : "superMan", "post" : [ 1, 3, 5, 7, 9 ] }
> db.c3.find({post:{$all:[1,3,5,9]}});
{ "_id" : ObjectId("5d64ec94350ff605d7b5549b"), "name" : "superMan", "post" : [ 1, 3, 5, 7, 9 ] }
> db.c3.find({post:{$all:[1,3,5,7,9]}});
{ "_id" : ObjectId("5d64ec94350ff605d7b5549b"), "name" : "superMan", "post" : [ 1, 3, 5, 7, 9 ] }
9, $ exists to check whether there is a field
- Data 1 there is a field
> db.c5.find();
{ "_id" : ObjectId("5d5e7b310bccde4320cfbfaf"), "name" : "user1" }
{ "_id" : ObjectId("5d5e7b390bccde4320cfbfb0"), "name" : "user2" }
{ "_id" : ObjectId("5d5e7b3d0bccde4320cfbfb1"), "name" : "user3" }
{ "_id" : ObjectId("5d5e7b430bccde4320cfbfb2"), "name" : "user4" }
{ "_id" : ObjectId("5d5e7b4a0bccde4320cfbfb3"), "name" : "user5" }
{ "_id" : ObjectId("5d5e7c720bccde4320cfbfb4"), "name" : "zhangsan", "sex" : "male", "weight" : "160" }
{ "_id" : ObjectId("5d5e7ce60bccde4320cfbfb5"), "name" : "user6" }
{ "_id" : ObjectId("5d5e7d0a0bccde4320cfbfb6"), "name" : "user6" }
{ "_id" : 5, "name" : "user55" }
{ "_id" : ObjectId("5d5f62cf8ee97b67104bcc89"), "name" : "Yixiantian", "post" : { "title" : "kungfu", "desc" : "BaChiQuan" } }
{ "_id" : ObjectId("5d5f64408ee97b67104bcc8a"), "name" : "YeWen", "student" : [ "Bruce Lee", "liang", "many" ] }
>
>
> db.c5.find({sex:{$exists:1}});
{ "_id" : ObjectId("5d5e7c720bccde4320cfbfb4"), "name" : "zhangsan", "sex" : "male", "weight" : "160" }
- Data 0 a field does not exist
> db.c5.find({sex:{$exists:0}});
{ "_id" : ObjectId("5d5e7b310bccde4320cfbfaf"), "name" : "user1" }
{ "_id" : ObjectId("5d5e7b390bccde4320cfbfb0"), "name" : "user2" }
{ "_id" : ObjectId("5d5e7b3d0bccde4320cfbfb1"), "name" : "user3" }
{ "_id" : ObjectId("5d5e7b430bccde4320cfbfb2"), "name" : "user4" }
{ "_id" : ObjectId("5d5e7b4a0bccde4320cfbfb3"), "name" : "user5" }
{ "_id" : ObjectId("5d5e7ce60bccde4320cfbfb5"), "name" : "user6" }
{ "_id" : ObjectId("5d5e7d0a0bccde4320cfbfb6"), "name" : "user6" }
{ "_id" : 5, "name" : "user55" }
{ "_id" : ObjectId("5d5f62cf8ee97b67104bcc89"), "name" : "Yixiantian", "post" : { "title" : "kungfu", "desc" : "BaChiQuan" } }
{ "_id" : ObjectId("5d5f64408ee97b67104bcc8a"), "name" : "YeWen", "student" : [ "Bruce Lee", "liang", "many" ] }
>
Note: There is 0 instead of -1, remember! ! !
10, $ mod modulo
 
-age field modulo 2 I 0
> db.c3.find({age:{$mod:[2,0]}});
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8555"), "name" : "user2", "age" : 2 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8557"), "name" : "user4", "age" : 4 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8559"), "name" : "user6", "age" : 6 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa855b"), "name" : "user8", "age" : 8 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa855d"), "name" : "user10", "age" : 10 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa855f"), "name" : "user12", "age" : 12 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8561"), "name" : "user14", "age" : 14 }
I 1 modulo 2 field -age
> db.c3.find({age:{$mod:[2,1]}});
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8554"), "name" : "user1", "age" : 1 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8556"), "name" : "user3", "age" : 3 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8558"), "name" : "user5", "age" : 5 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa855a"), "name" : "user7", "age" : 7 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa855c"), "name" : "user9", "age" : 9 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa855e"), "name" : "user11", "age" : 11 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8560"), "name" : "user13", "age" : 13 }
11, $ ne not equal
 
-age not equal to 4
>db.c3.find({age:{$ne:4}});
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8554"), "name" : "user1", "age" : 1 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8555"), "name" : "user2", "age" : 2 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8556"), "name" : "user3", "age" : 3 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8558"), "name" : "user5", "age" : 5 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8559"), "name" : "user6", "age" : 6 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa855a"), "name" : "user7", "age" : 7 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa855b"), "name" : "user8", "age" : 8 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa855c"), "name" : "user9", "age" : 9 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa855d"), "name" : "user10", "age" : 10 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa855e"), "name" : "user11", "age" : 11 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa855f"), "name" : "user12", "age" : 12 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8560"), "name" : "user13", "age" : 13 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8561"), "name" : "user14", "age" : 14 }
{ "_id" : ObjectId("5d64ec94350ff605d7b5549b"), "name" : "superMan", "post" : [ 1, 3, 5, 7, 9 ] }
- Age is not equal to 1 and 14
>db.c3.find({age:{$ne:[1,14]}});
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8554"), "name" : "user1", "age" : 1 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8555"), "name" : "user2", "age" : 2 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8556"), "name" : "user3", "age" : 3 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8558"), "name" : "user5", "age" : 5 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8559"), "name" : "user6", "age" : 6 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa855a"), "name" : "user7", "age" : 7 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa855b"), "name" : "user8", "age" : 8 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa855c"), "name" : "user9", "age" : 9 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa855d"), "name" : "user10", "age" : 10 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa855e"), "name" : "user11", "age" : 11 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa855f"), "name" : "user12", "age" : 12 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8560"), "name" : "user13", "age" : 13 }
{ "_id" : ObjectId("5d64e2e9b390e1ab45fa8561"), "name" : "user14", "age" : 14 }
{ "_id" : ObjectId("5d64ec94350ff605d7b5549b"), "name" : "superMan", "post" : [ 1, 3, 5, 7, 9 ] }
Note: The wording is wrong! It does not mean there is only one value, not an array!
Published 59 original articles · won praise 2 · Views 5578

Guess you like

Origin blog.csdn.net/LDR1109/article/details/102612502