濮阳杆衣贸易有限公司

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

MongoDB下根據(jù)數(shù)組大小進行查詢的方法

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

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

首先插入測試數(shù)據(jù)

復制代碼 代碼如下:

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對應的值是數(shù)組。

查詢num的數(shù)組值具有指定大小的document

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

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

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

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

如果數(shù)組大小是某個范圍

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

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

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

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

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

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

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

如果要求數(shù)組大小大于3,可以:

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

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

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

巨人網絡通訊聲明:本文標題《MongoDB下根據(jù)數(shù)組大小進行查詢的方法》,本文關鍵詞  MongoDB,下,根據(jù),數(shù)組,大小,;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《MongoDB下根據(jù)數(shù)組大小進行查詢的方法》相關的同類信息!
  • 本頁收集關于MongoDB下根據(jù)數(shù)組大小進行查詢的方法的相關信息資訊供網民參考!
  • 推薦文章
    通州区| 五常市| 德惠市| 象州县| 喜德县| 佛山市| 班玛县| 化德县| 南郑县| 高阳县| 天等县| 东阿县| 康定县| 依安县| 偃师市| 常宁市| 北票市| 商河县| 富民县| 饶河县| 彭阳县| 图片| 东明县| 新巴尔虎左旗| 武威市| 泉州市| 玉环县| 沁水县| 永顺县| 安图县| 乌兰县| 舟曲县| 宜城市| 敖汉旗| 沙坪坝区| 水城县| 安平县| 桓台县| 和平县| 衡阳县| 曲靖市|