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"。
我最近开始学习 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"。