Navicat使用教程:在MongoDB中使用游標(biāo)
Navicat for MariaDB 為 MariaDB 數(shù)據(jù)庫管理提供了一個(gè)原生環(huán)境。你可以直觀地設(shè)計(jì)數(shù)據(jù)庫結(jié)構(gòu)、運(yùn)行 SQL 查詢和腳本、管理 MariaDB 用戶及其權(quán)限。
點(diǎn)擊下載Navicat for MariaDB正式版
SQL查詢通常從數(shù)據(jù)庫服務(wù)器返回多行數(shù)據(jù)。關(guān)系數(shù)據(jù)庫提供游標(biāo),作為迭代每一行結(jié)果集的方法。這是否意味著MongoDB用戶不走運(yùn)?事實(shí)證明,MongoDB的db.collection.find()函數(shù)返回一個(gè)游標(biāo)。在MongoDB中,游標(biāo)本身提供了用于處理單個(gè)行的其他功能。在本文中,我們將學(xué)習(xí)如何在Navicat for MongoDB中使用MongoDB游標(biāo)。
一個(gè)簡(jiǎn)單的迭代示例
通過db.collection.find()函數(shù)執(zhí)行查詢將返回指向返回的文檔集合的指針,該指針是游標(biāo)。游標(biāo)的默認(rèn)行為是允許對(duì)查詢結(jié)果進(jìn)行自動(dòng)迭代。但是,開發(fā)人員可以顯式瀏覽游標(biāo)對(duì)象中返回的項(xiàng)目。一種方法是使用forEach()游標(biāo)方法。
在Navicat中,很容易使用find()方法。例如,您可以將預(yù)定義的代碼段拖到“查詢編輯器”中:
或者,您可以使用“查找生成器”。只需選擇“集合”或“視圖”即可獲取所有文檔:
從這里,您可以將forEach()直接鏈接到結(jié)果光標(biāo)。在以下示例中,我們集合中的三個(gè)文檔被打印到控制臺(tái)。您可以在“打印輸出”選項(xiàng)卡中查看輸出:
不同種類的循環(huán)
像所有JavaScript對(duì)象一樣,游標(biāo)可以存儲(chǔ)在變量中以備后用。由于cursor.hasNext()和cursor.next()方法,還完全支持其他JavaScript結(jié)構(gòu)(如while循環(huán))。正如我們?cè)诒纠锌吹降?,hasNext()通知循環(huán)測(cè)試器是否有另一個(gè)文檔要迭代。next()返回所述文檔。
printjson()幫助程序方法是一種方便的方法,它代替了print(tojson())。它基本上按與存儲(chǔ)在數(shù)據(jù)庫中相同的方式輸出文檔,只是將它們表示為JSON而不是BSON(等效的二進(jìn)制文件)。
更新數(shù)據(jù)
回想一下db.collection.find()返回一個(gè)指向返回的文檔集合的指針。這樣,文檔字段是完全可編輯的。因此,我們可以調(diào)用forEach()方法來更新符合指定條件的文檔。這是一個(gè)用于更新名稱等于“Tom Smith”的文檔的函數(shù):
在我們的示例中,只有一個(gè)匹配的文檔,但是從理論上講,可以有很多。
數(shù)據(jù)轉(zhuǎn)換
一種數(shù)據(jù)轉(zhuǎn)換類型是簡(jiǎn)化數(shù)據(jù)集的結(jié)構(gòu),以使其更易于使用。為此,我們可以使用map()函數(shù)。本示例將split()函數(shù)應(yīng)用于名稱字段,以將其分解為它的第一個(gè)和最后一個(gè)組成部分。然后,reverse()和join()方法將“Tom Smithers”轉(zhuǎn)換為“ Smithers,Tom”:
結(jié)論
在今天的文章中,我們了解了db.collection.find()方法返回的游標(biāo)如何與各種方法一起打包以遍歷文檔,以打印、修改、刪除或轉(zhuǎn)換其內(nèi)容。感興趣的朋友可以下載Navicat for MariaDB體驗(yàn)一下哦~
相關(guān)內(nèi)容推薦:
想要購買Navicat for MariaDB正版授權(quán),或了解更多產(chǎn)品信息請(qǐng)點(diǎn)擊“咨詢?cè)诰€客服”