【问题标题】:Meteor mongo what is fetch()?Meteor mongo 什么是 fetch()?
【发布时间】:2017-11-25 23:17:50
【问题描述】:

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

docs,他们说:

当从响应式计算中调用时,获取匹配文档上的寄存器依赖项

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

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

谁能帮我解决这个歧义?

【问题讨论】:

    标签: meteor reactive-programming meteor-blaze


    【解决方案1】:

    someCollection.find() 的光标足以作为 Blaze 模板帮助程序的返回值。 Blaze 知道如何迭代游标和数组。是的,当光标改变时,模板视图会自动更新。

    但在某些情况下,您希望使用仅理解数组的其他算法/库来处理集合查询的结果,在这种情况下,您只需 fetch() 光标在处理它之前。如果您需要在光标更改时重新运行此过程,只需使用 this.autorun / Tracker.autorun 将其包装起来,使其成为文档中所说的“反应式计算”。

    【讨论】:

      【解决方案2】:

      我看到文档说:

      将所有匹配的文档作为数组返回。

      Collection.find() 返回一个包含与该集合匹配的文档的cursorCollection.find().fetch() 返回一个数组(包含这些文档)到该cursor

      【讨论】:

        猜你喜欢
        • 2019-02-04
        • 2021-08-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-03-01
        • 2016-06-08
        • 1970-01-01
        相关资源
        最近更新 更多