官术网_书友最值得收藏!

2.4 查詢文檔

2.4.1 查詢全部數據

db.collection.find方法可以用于集合數據的查詢,代碼如下:

如果查詢返回的條目數量較多,mongo shell則會自動實現分批顯示。默認情況下每次只顯示20條,可以輸入it命令讀取下一批。

實際上,find命令返回的是一個游標(cursor)對象,mongo shell對batchSize做了限定,該大小可通過變量DBQuery.shellBatchSize修改。

使用游標對象提供的API,可以對全部結果集進行遍歷,代碼如下:

2.4.2 指定條件查詢

例A,查詢帶有“mongodb”標簽的book文檔:

例B,查詢分類為“novel”的book文檔:

例C,按照id查詢單個book文檔:

例D,查詢分類為“literature”、收藏數超過10個的book文檔:

2.4.3 排序、分頁

(1)指定排序

如果不指定排序條件,MongoDB則會默認按物理順序返回,這里我們可以指定按出版時間(publishedDate)降序返回,代碼如下:

(2)分頁查詢

skip用于指定跳過記錄數,limit則用于限定返回結果數量。

可以在執行find命令的同時指定skip、limit參數,以此實現分頁的功能。比如,假定每頁大小為8條,查詢第3頁的book文檔,代碼如下:

在find命令中使用limit=1,可以明確限定返回文檔的數量,除此之外還可以使用另一個快捷方法:findOne。

2.4.4 使用投射

投射(projection)可以讓數據庫只返回一部分被關注的字段,而不是整個文檔。

比如,可以讓數據庫僅僅返回book文檔中的標題(title)、收藏數(favCount)字段,代碼如下:

默認情況下,_id會被一起返回,可以在projection參數中明確將其去除,代碼如下:

2.4.5 查詢限定符

比較操作符見表2-5。

表2-5 比較操作符

邏輯操作符見表2-6。

表2-6 邏輯操作符

數組操作符見表2-7。

表2-7 數組操作符

主站蜘蛛池模板: 江口县| 武义县| 台山市| 牡丹江市| 新昌县| 蓝田县| 铜陵市| 沙雅县| 岢岚县| 正镶白旗| 灵川县| 福海县| 内乡县| 克什克腾旗| 郑州市| 江津市| 称多县| 馆陶县| 宁夏| 泽州县| 庆云县| 奉新县| 龙岩市| 高淳县| 班玛县| 南华县| 灌阳县| 青阳县| 梅州市| 塔城市| 汉沽区| 峨眉山市| 瑞丽市| 江源县| 开封县| 彭水| 深圳市| 资讯 | 曲周县| 陆良县| 新巴尔虎右旗|