Mongodb查詢命令詳解


前面我們簡單的講了下find方法,下面來深入的過一下它的用法以及常用的字方法。

下面是mongo中db.user.help()中對find方法的定義和解釋:

db.user.find([query],[fields]) - query is an optional query filter. fields is optional set of fields to return.
                                                      e.g. db.user.find( {x:77} , {name:1, x:1} )

其中fields參數的意圖是要顯示/不顯示的字段列表,不賦值則返回全部字段(_id字段默認返回)。

其中key:flag(0/1)中flag==1表示該字段返回,除了_id字段外,指定的其他字段的flag值必須都一樣

例:

/**
查找age==28的記錄的_id,name,sex
**/
db.user.find({age:28},{name:1,sex:1})
/**
該查詢會報錯,因為age必須為1,為0的話其實就不需要寫
**/
db.user.find({age:28},{name:1,sex:1,age:0})
/**
查找age==28的記錄的name和sex,_id字段不需要返回
**/
db.user.find({age:28},{name:1,sex:1,_id:0})

 

在數據庫的where查詢中的比較操作符常用有如下2類:

     ①: >, >=, <, <=, !=, =。

     ②:and,or,in,not in

在mongodb中也提供了對這些常用操作符的支持,

1、"$gt", "$gte", "$lt", "$lte", "$ne"對應了>, >=, <, <=, !=,上面的=沒有特殊關鍵字,直接使用key:value即可。

2、 "$or", "$in","$nin"對應了or,in,not in,上面的and沒有特殊關鍵字,直接使用逗號分隔的就是and。

/**
查詢age>30的用戶
**/
db.user.find({age:{$gt:30}})
/**
查詢age<15的用戶
**/
db.user.find({age:{$lt:15}})
/**
查詢name in ("haha","hehe","jingli")的用戶
**/
db.user.find({name:{$in:["haha","hehe","jingli"]}})
/**
查詢 name in ("haha","hehe","jingli") and (age<15 or age>30)的用戶
**/
db.user.find({name:{$in:["haha","hehe","jingli"]},$or:[{age:{$lt:15}},{age:{$gt:30}}]})

3、使用正則表達式查詢

/**
查詢名字以h開頭的用戶
**/
db.user.find({name:/^h/})

4、使用$where來自定義JS的Function來匹配

/**
查詢age>30 || age<10的用戶
**/
db.user.find({$where:function(){return this.age>30 || this.age<10}})

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM