使用 nodejs-mongodb 驱动程序在哪里指定 "noCursorTimeout" 选项?

where to specify "noCursorTimeout" option using nodejs-mongodb driver?

这可能很明显,但现在我无法在文档中找到它或 google 它...

我将 mongodb 与 nodejs 驱动程序一起使用,并且有一个可能很长的操作(> 10 分钟)与确实超时的游标有关(如 http://docs.mongodb.org/manual/core/cursors/#cursor-behaviors 中指定)。

在 nodejs-driver API 文档 (http://mongodb.github.io/node-mongodb-native/2.0/api/Cursor.html) 中提到了在 Cursor 上调用的方法 addCursorFlag(flag, value)

然而,没有关于如何做的例子,只是简单地调用例如

objectCollection.find().limit(objectCount).addCursorFlag('noCursorTimeout', true).toArray(function (err, objects) {
    ...
}

导致TypeError: Object #<Cursor> has no method 'addCursorFlag'

那么如何让这个 Cursor 存在的时间超过那 10 分钟?

此外,根据mongodb文档的要求,我该如何手动关闭光标?

谢谢!

所以我的问题得到了部分解决方案。 API 文档中没有这样说,但显然你必须在 find() 选项中指定它,如下所示:

objectCollection.find({},{timeout: false}).limit(objectCount).toArray(function (err, objects) {
    ...
}

然而,清理呢?那些游标会被杀死吗?调用 db.close() 就足够了吗?

您提供的示例:

db.collection.find().addCursorFlag('noCursorTimeout',true)

..在驱动程序版本 2.14.21 上对我来说工作正常。我现在打开光标 45 分钟了。

会不会是您使用的是 1.x NodeJS 驱动程序?