主頁 > 知識庫 > MongoDB下根據數組大小進行查詢的方法

MongoDB下根據數組大小進行查詢的方法

熱門標簽:兗州電話外呼營銷系統(tǒng) 機器人外呼系統(tǒng)軟件存在問題 沈陽營銷電銷機器人招商 企業(yè)智能外呼系統(tǒng)價格多少 南京400電話怎樣辦理 徐州ai電銷機器人原理 智能電銷機器人銷售話術 高德地圖標注商戶位置 福州電銷機器人源代碼

注意:作者使用的mongodb版本為2.4.7。

首先插入測試數據

復制代碼 代碼如下:

db.data.insert({name:'a', num:[12,123,22,34,1]});
db.data.insert({name:'b', num:[42,22]});
db.data.insert({name:'c', num:[49]});

鍵num對應的值是數組。

查詢num的數組值具有指定大小的document

最好的方法是使用$size,例如指定大小為2,可以:

復制代碼 代碼如下:
db.data.find({num:{$size:2}})

不過$size有一個缺陷,就是無法查詢某個范圍的大小,例如下面的語句是無法按照預期運行的:
復制代碼 代碼如下:
db.data.find({num:{$size:{$gt:2}}}); //錯誤

官方文檔中建議,如果需要查詢的數組大小在某個范圍,可以另外為每個文檔添加一個鍵來保存當前數組的大小。

如果數組大小是某個范圍

另外兩種思路,第一個思路是使用$where,例如如果要求數組大小小于3:

復制代碼 代碼如下:
db.data.find({ $where: "this.num.length lt; 3" })

這種方法具有很大的靈活性,但是速度會慢一些。

關于$where,請參考官方文檔:http://docs.mongodb.org/manual/reference/operator/query/where/。

另外一個比較高效的方法是判斷數組中的某個指定索引的元素是否存在,例如如果要求數組大小小于3:

復制代碼 代碼如下:
db.data.find({ "num.2": {$exists:0} })

數組大小小于3,就意味著num[2]不存在。

如果要求數組大小大于3,可以:

復制代碼 代碼如下:
db.data.find({ "num.3": {$exists:1} })

您可能感興趣的文章:
  • MongoDB中多表關聯(lián)查詢($lookup)的深入講解
  • Mongodb實現的關聯(lián)表查詢功能【population方法】
  • MongoDB各種查詢操作詳解
  • MongoDB查詢操作限制返回字段的方法
  • PHP中MongoDB數據庫的連接、添加、修改、查詢、刪除等操作實例
  • MongoDB導出查詢結果到文件例子
  • MongoDB如何對數組中的元素進行查詢詳解
  • MongoDB查詢技巧總結
  • MongoDB查詢性能優(yōu)化驗證及驗證
  • mongodb實現同庫聯(lián)表查詢方法示例
  • MongoDB的基礎查詢和索引操作方法總結
  • MongoDB多表關聯(lián)查詢操作實例詳解

標簽:昭通 丹東 本溪 吉安 邯鄲 鶴崗 大理 景德鎮(zhèn)

巨人網絡通訊聲明:本文標題《MongoDB下根據數組大小進行查詢的方法》,本文關鍵詞  MongoDB,下,根據,數組,大小,;如發(fā)現本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《MongoDB下根據數組大小進行查詢的方法》相關的同類信息!
  • 本頁收集關于MongoDB下根據數組大小進行查詢的方法的相關信息資訊供網民參考!
  • 推薦文章