Navicat使用教程:在MongoDB中使用游标
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正版授权,或了解更多产品信息请点击