当我在minimongo上执行fetch()时会发生什么



要查询流星客户端mongodb实现上的对象,我可以使用

MyModel.find();
// produces a lot of attributes, not useful

MyModel.find().fetch();
// returns array containing my objects from type 'MyModel', e.g.
// [ { _id: "1", title: "some title", url: "some Url"__proto__: Object }, .. ]

如果我不使用fetch,我就会得到很多我不理解的属性,这对我来说似乎没什么用。我想知道当我调用fetch()方法时会发生什么。我找不到任何相关的文档

Collection.find ();

在集合中查找与选择器匹配的文档并返回光标。在Meteor中,find()是同步的,如果数据库发生了变化,它也会反映在UI上。

以下是Collection.find()的详细信息

cursor.fetch ();

fetch()是从游标获取数据库at-one的所有记录。您可以对find()返回的游标使用fetch。当你使用fetch()时,你会得到数组中的所有记录,但你不会得到更新,即运行时数据库的变化不会反映在执行后返回的数据上。

关于cursor.fetch()的更多细节

用什么?

如果你需要所有的文档,并且想对它做一些操作,那么只有fetch()是有用的,否则,游标是最好的。

结论

使用Collection.find()是最好的、可靠的和轻量级的。但最后它是根据您的应用程序逻辑。

findfetch之间还有一个更根本的区别:fetch导致对整个游标数据进行深度复制操作。这会消耗CPU和内存。

因此:如果你不需要,不要使用fetch !只有在将数据传递给第三方库(如d3)时才需要它,这些库不理解游标是什么,需要本地JS数组。

相关内容

  • 没有找到相关文章

最新更新