如何實現文檔檢索(上)

  • 2020 年 3 月 27 日
  • 筆記

通過查詢執行從MongoDB數據庫中獲取或獲取數據的方法。在執行查詢操作時,可以使用標準查詢,或組合條件從數據庫中檢索符合條件的特定數據。

MongoDB提供了一個名為db.collection.find()的函數,該函數用於從MongoDB數據庫中檢索文檔。

本次,我們將學習實現文檔檢索的部分內容,剩餘部分敬請期待下期分享。

  • 使用find()查詢MongoDB中的文檔
  • MongoDB游標是什麼
  • 使用Sort()和Limit()排序查詢MongoDB 實例
  • MongoDB Count()函數和Remove()函數
  • 使用 Update()更新MongoDB文檔

使用find()查詢MongoDB中的文檔

基本查詢操作

基本查詢操作包括一些簡單的操作,比如獲取MongoDB集合中的所有文檔。我們來看一個如何實現例子。

我們所有的代碼都將在MongoDB JavaScript命令窗口中運行。我們在MongoDB數據庫中有一個「 Employee」的集合,我們可以執行下面的命令。

代碼說明:

1. Employee 是MongoDB數據庫中的集合名稱

2. find命令是一個內置函數,用於檢索集合中的文檔。

如果命令執行成功,將顯示以下輸出結果:

輸出顯示集合中存在的所有文檔。

我們還可以向查詢中添加條件,以便我們可以根據特定條件獲取文檔。

1 例子1

讓我們看一些如何實現此目的的示例。

db.Employee.find({EmployeeName : "Smith"}).forEach(printjson);

代碼說明:

1. 我們要在集合中查找名稱為「 Smith」的Employee,因此我們將過濾條件輸入為EmployeeName:「 Smith」

命令執行成功,將顯示以下輸出結果:

結果顯示僅返回包含Employee name 為「 Smith」的文檔。

1 例子2

現在,讓我們看另一個使用大於搜索條件的代碼示例。當包含此條件時,它實際上搜索那些字段值大於指定值的文檔。

db.Employee.find({Employeeid : {$gt:2}}).forEach(printjson);

說明:

我們要查找ID大於2的所有Employee。 $gt為查詢選擇運算符,意思是使用大於號表達式。

如果命令執行成功,將顯示以下輸出結果:

返回所有員工ID大於2的文檔。

源地址:

https://www.guru99.com/mongodb-query-document-using-find.html

MongoDB中的游標是什麼?

當使用db.collection.find()函數在集合中搜索文檔時,結果將返回指向文檔集合的指針,該指針稱為游標。

默認情況下,返回查詢結果時,游標將自動進行迭代。當然可以一個接一個明確展示游標中返回的結果目錄。下面的例子,在我們的集合中有3個文檔,光標對象將指向第一個文檔,然後遍歷該集合的所有文檔。

下面的例子,告訴我們如何完成此操作。

var myEmployee = db.Employee.find( { Employeeid : { $gt:2 }});  while(myEmployee.hasNext())  {  print(tojson(myEmployee.next()));  }

代碼說明:

1. 首先,我們獲取查詢的結果集,該結果集查找ID大於2的Employee並將其賦值給JavaScript變量「 myEmployee」

2. 接下來,我們使用while循環遍歷作為查詢一部分返回的所有文檔。

3. 最後,對於每個文檔,我們以JSON格式輸出該文檔的詳細信息。

如果命令執行成功,將顯示以下輸出結果:

源地址:

https://www.guru99.com/mongodb-cursor.html

譯者:徐揚

MongoDB中文社區翻譯志願者,資深程序員。