MongoDB - find()是实时的吗?

问题描述 投票:0回答:1

在node.js应用程序中使用node-mongodb-native npm包,如果我在长期运行的node.js异步脚本的早期获取一个集合对象,如下所示:

var collection = await db.collection(collectionName);

如果在我执行此集合对象的find()方法之前修改了集合,那么find({})的结果是最新的,还是只显示我获取集合对象时的数据?

例如,让我们假设10分钟后脚本会变成这样的一行:

let cursor = await collection.find({});

另外假设在这段时间内,在调用find()之前添加,删除和修改了项目。

生成的光标是否会导航当前数据,或者数据是否与我获取集合对象时(在脚本开头)的数据相同?

node.js mongodb mongodb-query node-mongodb-native
1个回答
1
投票

我真的怀疑它会在你获得它时拍摄快照。

见:https://docs.mongodb.com/manual/reference/method/db.getCollection/

find的返回值将是当前状态的光标。

生成的光标是否会导航当前数据,或者数据是否与我获取集合对象时(在脚本开头)的数据相同?

生成的游标将运行当前数据。

© www.soinside.com 2019 - 2024. All rights reserved.