Meteor mongo 什么是 fetch()?

Meteor mongo what is fetch()?

我最近开始学习 Meteor,所以我学会了如何通过 Meteor 使用 Mongo 但有些东西我不明白,在网络上我经常看到这样的例子:SomeCollection.find().fetch() ,我看不出 fetch() 有什么用处?

docs中,他们说:

When called from a reactive computation, fetch registers dependencies on the matching documents

这是否意味着当 SomeCollection 中的数据发生变化时,它们将在视图中发生变化?

find()返回的游标不是默认是响应式的吗(游标上数据的变化会自动在视图中可见)?

任何人都可以为我解决这个歧义吗?

我看到文档说:

Return all matching documents as an Array.

Collection.find() returns 一个 cursor 包含该集合的匹配文档,Collection.find().fetch() returns 一个数组(包含那些文档)到 cursor

来自 someCollection.find() 的游标足以作为 Blaze 模板助手 的 return 值。 Blaze 知道如何迭代游标和数组。是的,当光标改变时,模板视图将相应地自动更新。

但在某些情况下,您希望使用其他仅理解数组的算法/库来处理集合查询的结果,在这种情况下,您只需 fetch() 游标即可,然后再进行处理。如果您需要在光标更改时重新 运行 处理此过程,只需将其用 this.autorun / Tracker.autorun 包裹起来,这样它就变成了文档中提到的 "reactive computation"。