MongoDB學習—(6)MongoDB的find查詢比較符
首先,先通過以下函式向BookList集合中插入10000條資料
function insertN(obj,n){
var i=0;
while(i<n){
obj.insert({id:i,name:"bookNumber"+i,publishTime:i+2000})
i++;
}
}
var BookList=db.getCollection("BookList")
呼叫函式,這樣,BookList中就有10000條資料了
通過命令db.[documentName].find({條件},{鍵指定})來查詢具有特定特徵的資料,鍵指定可用於指定什麼鍵顯示想、什麼鍵不顯示。例如:{id:0,name:1,publishTime:1}表示id鍵內容不顯示,name與publishTime內容顯示。
一,比較操作符查詢
$lt (less than) |
< |
$lte (less than equal) |
<= |
$gt (greater than) |
> |
$gte (greater than equal) |
>= |
$ne (not equal) |
!= |
我們可以運用比較操作符來查詢出出版日期publishTime在2010年至2016年的書,並且不顯示id,那麼我們可以用一下語句進行查詢
效果如下:db.BookList.find({publishTime:{$gte:2010,$lte:2016}},{_id:0,name:1,publishTime:1})
其他比較符可用類似方法組合使用。
二,$in與$nin包含與不包含
$in與$nin的用法是根據特定的鍵值。
命令格式db.[documentName].find({filed:{$in:[value1,value2,...]}}),運用該命令就可以查詢出鍵filed中包含value1或value2,...等的資料,是一個或關係,只要包含有一個相同的value就符合查詢條件。
命令格式db.[documentName].find({filed:{$nin:[value1,value2,...]}}),運用該命令就可以查詢出鍵filed中不包含value1或value2,...等的資料。
三,$or或查詢
命令格式db.[documentName].find({$or:[{條件},{條件},...]}),注意中括號與花括號的區別,例如我們要查詢id小於30,出版日期publishTime介於2000-2010年的資料,我們就可以用命令:
db.BookList.find({$or:[{id:{$lt:30}},{publishTime:{$gte:200,$lte:2010}}]},{_id:0,name:1,publishTime:1})
四,Null關鍵字
Null關鍵字可用於查詢集合中哪些資料不包含某些鍵,命令格式db.[documentName].find({filed:null})
五,正則表示式查詢
命令格式db.[documentName].find({filed:正則表示式}),由於我對於JS的正則表示式不是太瞭解,我就不嘗試了( ̄o ̄) .
六,$not取反
該指令可將任何查詢條件取反,類似於查詢publishTime大於2016年的,通過$not取反可取到publishTime小於等於2016年的,一下為指令變換:
db.BookList.find({publishTime:{$gt:2016}}) 取反 db.BookList.find({publishTime:{$not:{$gt:2016}}})