1. 程式人生 > >MongoDB學習—(6)MongoDB的find查詢比較符

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