Meteor:查找具有最高价值的文档

时间:2014-03-28 11:36:07

标签: javascript meteor

我想在具有特定属性值最高值的集合中找到一个文档。

假设文档具有以下结构

{
  _id: 'jswehfkwefkjw',
  price: 10,
  ....
}

如何选择价格最高的文件?

我发现了这个

transactions.find("id" => x).sort({"sellprice" => -1}).limit(1).first();

但我无法将其转化为流星:(我现在看起来像这样

Articles.find({}, {sort: {price: -1}}).fetch();

但这并不是这样。有什么建议吗?

2 个答案:

答案 0 :(得分:12)

我并不完全明白你的意思"这没有做到"。

但是我建议使用findOne而不是fetch,因为fetch会返回一个数组而你需要一个文档。

Articles.findOne({}, {sort: {price: -1}});

Articles.find({},{limit: 1, sort: {price: -1}});

然后使用fetch并使用数组表示法[0]或下划线_.first(数组)

获取第一个元素

答案 1 :(得分:1)

与mongo版本一样,如果要对返回的对象进行排序和限制,则需要同时提供排序和限制选项。两者都在meteor docs on find()中描述。

如果您想要返回一个价格最高的项目的光标,那么这应该有效:

Articles.find({},{limit: 1, sort: {price: -1}});  

如果你想要对象本身,那么添加fetch()或使用findOne()。如果使用findOne(),则limit选项是多余的。