mongodb--find高级用法
生活随笔
收集整理的這篇文章主要介紹了
mongodb--find高级用法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
鏈式查詢
db.person.find().limit(4).sort({sex:-1}) // sort來說,1 是升序, -1 是降序 盡量不要用mongodb去做一些復雜的運算分頁的寫法
···
最簡單的分頁的寫法
var page1 = db.person.find(name).limit(100);
var page2 = db.person.find(name).skip(100).limit(100);
···
指定選中的列保留
db.str.find({},{_id:0,age:1}); //查詢出age,不要_id大于小于等于
> var cond={"age":{"$gte":1,"$lte":2}} > db.person.find(cond) { "_id" : ObjectId("56760f3c5001a3b4af601567"), "name" : "hxc19", "age" : 1 } { "_id" : ObjectId("56760f3c5001a3b4af601568"), "name" : "hxc20", "age" : 1.0526315789473684 }in,nin,or in,nin:一個key后再加上一個子文檔。
> var cond={"age":{"$in":[1,2,3,4]}} > db.person.find(cond) { "_id" : ObjectId("56760f3c5001a3b4af601567"), "name" : "hxc19", "age" : 1 }find中的正則表達式,和sql中的like操作一個樣 O(N) Table Scan
> var cond={"name":/18$/} > db.person.find(cond) { "_id" : ObjectId("56760f3c5001a3b4af601566"), "name" : "hxc18", "age" : 0.9473684210526315 }查詢數組中的元素
> var single={"name":"jack",address:["anhui","shanghai","beijing"]} > db.mytest.insert(single) > db.mytest.find() { "_id" : ObjectId("567632624163f2ea4dd06e96"), "name" : "jack", "address" : [ "anhui", "shanghai", "beijing" ] } > db.mytest.find({"address":"anhui"}) { "_id" : ObjectId("567632624163f2ea4dd06e96"), "name" : "jack", "address" : [ "anhui", "shanghai", "beijing" ] }all操作
db.mytest.find({"address":{"$all":["anhui","shanghai"]}}) { "_id" : ObjectId("567632624163f2ea4dd06e96"), "name" : "jack", "address" : [ "anhui", "shanghai", "beijing" ] } db.mytest.find({"address":{"$all":["anhui","s"]}})size操作
db.mytest.find({"address":{"$size":2}}) db.mytest.find({"address":{"$size":3}}) { "_id" : ObjectId("567632624163f2ea4dd06e96"), "name" : "jack", "address" : [ "anhui", "shanghai", "beijing" ] }slice操作
db.mytest.find({"name":"jack"},{"address":{"$slice":1}}) { "_id" : ObjectId("567632624163f2ea4dd06e96"), "name" : "jack", "address" : [ "anhui" ] } db.mytest.find({"name":"jack"},{"address":{"$slice":2}}) { "_id" : ObjectId("567632624163f2ea4dd06e96"), "name" : "jack", "address" : [ "anhui", "shanghai" ] }where 【更靈活更強大】
可以灌輸js代碼,所以會有最大的靈活性。
db.person.find({"$where":function(){return this.name=="hxc19" && this.age==1}}) { "_id" : ObjectId("56760f3c5001a3b4af601567"), "name" : "hxc19", "age" : 1 } db.person.find({"$where":function(){ var i=1; return (this.age/1)==1 }}) { "_id" : ObjectId("56760f3c5001a3b4af601567"), "name" : "hxc19", "age" : 1 }db.person.find({"$where":function(){return ( this.age>1&& this.age<2); }}) { "_id" : ObjectId("56760f3c5001a3b4af601568"), "name" : "hxc20", "age" : 1.0526315789473684 } { "_id" : ObjectId("56760f3c5001a3b4af601569"), "name" : "hxc21", "age" : 1.105263157894737 } { "_id" : ObjectId("56760f3c5001a3b4af60156a"), "name" : "hxc22", "age" : 1.1578947368421053 } { "_id" : ObjectId("56760f3c5001a3b4af60156b"), "name" : "hxc23", "age" : 1.2105263157894737 }轉載于:https://www.cnblogs.com/weloveshare/p/5765280.html
總結
以上是生活随笔為你收集整理的mongodb--find高级用法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: codeforces 706B B. I
- 下一篇: outdated: 29.Blitter