find({},{sort:...})和find()有什么区别.sort(...)?

时间:2016-11-05 22:51:30

标签: mongodb sorting meteor

在MongoDB文档中,当我搜索sort时,它会将我引导至cursor.sort() page。 (顺便说一下,文档没有指定从这个方法返回的内容。)。所以我在我的流星脚本Collection.find().sort('date':1)中使用它,但抱怨find()。sort不是一个函数。 (我以为find()会返回一个光标,不是吗?)

所以我做了一些进一步的搜索,发现一些教程告诉我使用find({},{sort:...})。

那么这两种方法有什么区别?

2 个答案:

答案 0 :(得分:2)

使用find({},sort ...要求Mongo进行排序,这是最有效的方法,因为如果字段被索引,数据库服务器可以优化排序。

Meteor不提供完整的Mongo api,因为浏览器中的迷你Mongo确实具有所有功能,并且他们希望在客户端和服务器中提供一致的api。

我没有检查过,但我认为如果你在find和sort之间添加一个fetch()它会起作用,因为fetch会返回一个可排序的数组

答案 1 :(得分:1)

在Meteor框架中,你需要做一些Meteor方式的事情!
只需使用Meteor Docs中指定的Collection.find,然后传递Sort Specifier

两者有什么区别?
一个被Meteor包裹,在框架内部工作,另一个没有!

我不相信你会发现框架中的'Meteor api'或来自(非流星)nodejs的'标准MongoDB api'之间存在任何性能差异。