Node.js MongoDB-find()是实时的吗?
在node.js应用程序中使用npm包,如果我在长时间运行的node.js异步脚本的早期获取一个集合对象,如下所示:Node.js MongoDB-find()是实时的吗?,node.js,mongodb,mongodb-query,node-mongodb-native,Node.js,Mongodb,Mongodb Query,Node Mongodb Native,在node.js应用程序中使用npm包,如果我在长时间运行的node.js异步脚本的早期获取一个集合对象,如下所示: var collection = await db.collection(collectionName); let cursor = await collection.find({}); 如果在我执行此集合对象的find()方法之前修改了集合,那么find({})的结果是最新的,还是只显示我获取集合对象时的数据 例如,假设10分钟后脚本到达如下行: var collectio
var collection = await db.collection(collectionName);
let cursor = await collection.find({});
如果在我执行此集合对象的find()
方法之前修改了集合,那么find({})
的结果是最新的,还是只显示我获取集合对象时的数据
例如,假设10分钟后脚本到达如下行:
var collection = await db.collection(collectionName);
let cursor = await collection.find({});
另外,假设在此期间,在调用find()
之前添加、删除和修改了项
生成的光标将导航当前数据,还是数据将与我获取集合对象时(在脚本开始时)的数据相同?我真的怀疑当您获取集合时,它是否会对其进行快照 见:
find
的返回值将是指向当前状态的光标
将生成的光标定位到当前数据还是将数据作为
就是在我获得收集对象的时候(在
剧本的开头
生成的光标在当前数据中运行。此外,如果在光标导航时添加、删除和修改了项目,该怎么办?游标数据是否保持当前状态,还是调用find()方法时的快照?IDK TBH,
toArray()
通过迭代游标创建RAM中匹配文档的快照。这意味着一个快照,但它也会遍历游标,所以问题仍然存在。最简单的方法是编写一个小示例,在这个示例中,您查询一个集合,然后运行一个循环,该循环在每次迭代中等待按键,移动光标一次并打印结果。您可以同时尝试插入/更新/删除文档,查看结果是否受到影响。