MongoDB 游标方法

17 Mar 2025 | 4 分钟阅读

MongoDB 游标方法修改指定查询的执行方式。以下是游标方法的列表,包含描述、语法和示例。

#1 cursor.addOption(flag)

该方法添加 "OP_QUERY" 线协议标志。它被添加来改变查询的行为,例如 tailaible 标志。

示例

上面的示例添加了 tailable 标志和 awaitData 标志,以确保查询返回一个可追踪的游标。将使用此方法生成一个游标,该游标在返回完整结果集后等待几秒钟。这样在查询过程中,它就可以获取并返回其他数据。

#2. Cursor.batchSize(size)

来自 MongoDB 对象的批量结果返回使用批量大小方法指定的文档数量。在许多情况下,如果我们修改批量大小,它不会影响用户或应用程序。

示例


MongoDB Cursor Methods

#3. cursor.close()

该方法用于关闭游标,并在该方法的指令下释放相关的服务器资源。对于剩余结果为零或空闲时间达到指定期限的游标,服务器将自动关闭。

示例

#4. cursor.collation(<collation document>)

MongoDB collation() 方法为 db.collection.find() 返回的游标指定排序规则。

close 方法接受的排序规则文档

示例

输出

MongoDB Cursor Methods

#5. cursor.forEach(function)

JavaScript 函数将使用 forEach 方法应用于游标的所有文档。

语法

示例

在 find() 方法返回的游标上调用 forEach() 方法,以显示集合中所有用户的姓名。

输出

MongoDB Cursor Methods

#6. cursor.hint(index)

在查询期间调用该方法,以覆盖 MongoDB 的默认索引选择和查询优化过程。

示例

使用年龄字段上的索引,用户集合中的所有文档都将使用以下查询返回。

#7. cursor.limit()

此方法用于指定游标返回的最大文档数。它将在游标中使用,并且可以与 SQL 数据库中的 LIMIT 语句相比较。

示例

#8. cursor.map(function)

map 方法被游标访问的文档使用,并将来自最近的应用程序的返回值收集到一个数组中。

示例

#9. cursor.max()

max 方法用于限制 find().max() 方法的结果。MongoDB 指定特定索引的独占上限,该索引提供了一种为复合键索引指定上限的方法。

示例

为集合创建以下索引

如果您使用的是 { item: 1, type: 1 } 索引的顺序,则 max() 会限制对项目等于 Mango 且类型等于的边界以下的文档的查询

#10. cursor.min()

为了约束 find() 的结果。min() MongoDB 指定特定索引的下限,以便。此方法提供了一种定义复合键索引下限的方法。

语法

示例

首先,创建一个名为 superstore 的示例集合,其中包含以下文档

现在,为集合创建索引

MongoDB Cursor Methods

min() 方法使用 { item: 1, type: 1 } 索引的顺序将查询限制为文档。

#11. cursor.tailable()

tailable 方法将游标标记为 tailable。它作为上限集合上的扫描器工作。即使到达集合的最后一个节点后,它仍然保持打开状态。该方法的应用将持续运行,因为新数据插入到集合中。

语法

如果 awaitdata 标志设置为 true,则当游标到达上限集合的末尾时,MongoDB 会阻止查询线程一段时间,等待新数据的到达。当新数据插入到上限集合中时,会发出唤醒信号并向客户端返回下一批数据。

#12. cursor.toArray()

该方法返回一个包含游标的所有文档的数组。它将所有文档加载到 RAM 中,并通过完全迭代游标来耗尽游标。

示例