翻譯|使用教程|編輯:莫成敏|2019-09-29 11:45:04.590|閱讀 1121 次
概述:SQL查詢通常從數據庫服務器返回多行數據。關系數據庫提供游標,作為迭代每一行結果集的方法。MongoDB的db.collection.find()函數返回一個游標。在MongoDB中,游標本身提供了用于處理單個行的其他功能。在本文中,我們將學習如何在Navicat for MongoDB中使用MongoDB游標。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
Navicat for MariaDB 為 MariaDB 數據庫管理提供了一個原生環境。你可以直觀地設計數據庫結構、運行 SQL 查詢和腳本、管理 MariaDB 用戶及其權限。
SQL查詢通常從數據庫服務器返回多行數據。關系數據庫提供游標,作為迭代每一行結果集的方法。這是否意味著MongoDB用戶不走運?事實證明,MongoDB的db.collection.find()函數返回一個游標。在MongoDB中,游標本身提供了用于處理單個行的其他功能。在本文中,我們將學習如何在Navicat for MongoDB中使用MongoDB游標。
一個簡單的迭代示例
通過db.collection.find()函數執行查詢將返回指向返回的文檔集合的指針,該指針是游標。游標的默認行為是允許對查詢結果進行自動迭代。但是,開發人員可以顯式瀏覽游標對象中返回的項目。一種方法是使用forEach()游標方法。
在Navicat中,很容易使用find()方法。例如,您可以將預定義的代碼段拖到“查詢編輯器”中:
或者,您可以使用“查找生成器”。只需選擇“集合”或“視圖”即可獲取所有文檔:
從這里,您可以將forEach()直接鏈接到結果光標。在以下示例中,我們集合中的三個文檔被打印到控制臺。您可以在“打印輸出”選項卡中查看輸出:
不同種類的循環
像所有JavaScript對象一樣,游標可以存儲在變量中以備后用。由于cursor.hasNext()和cursor.next()方法,還完全支持其他JavaScript結構(如while循環)。正如我們在本例中看到的,hasNext()通知循環測試器是否有另一個文檔要迭代。next()返回所述文檔。
printjson()幫助程序方法是一種方便的方法,它代替了print(tojson())。它基本上按與存儲在數據庫中相同的方式輸出文檔,只是將它們表示為JSON而不是BSON(等效的二進制文件)。
更新數據
回想一下db.collection.find()返回一個指向返回的文檔集合的指針。這樣,文檔字段是完全可編輯的。因此,我們可以調用forEach()方法來更新符合指定條件的文檔。這是一個用于更新名稱等于“Tom Smith”的文檔的函數:
在我們的示例中,只有一個匹配的文檔,但是從理論上講,可以有很多。
數據轉換
一種數據轉換類型是簡化數據集的結構,以使其更易于使用。為此,我們可以使用map()函數。本示例將split()函數應用于名稱字段,以將其分解為它的第一個和最后一個組成部分。然后,reverse()和join()方法將“Tom Smithers”轉換為“ Smithers,Tom”:
結論
在今天的文章中,我們了解了db.collection.find()方法返回的游標如何與各種方法一起打包以遍歷文檔,以打印、修改、刪除或轉換其內容。感興趣的朋友可以下載Navicat for MariaDB體驗一下哦~
相關內容推薦:
想要購買Navicat for MariaDB正版授權,或了解更多產品信息請點擊
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn