【问题标题】:How to find the highest field value in a collection如何找到集合中的最高字段值
【发布时间】:2017-09-19 21:37:33
【问题描述】:

例如,假设我将这些文档放在名为“items”的集合中:

{
  rank: 1
}
{
  rank: 2
}
{
  rank: 3
}

如何在 items 集合中找到最高排名值 (3) 以分配给变量?

【问题讨论】:

    标签: javascript mongodb meteor meteor-blaze


    【解决方案1】:

    您可以按等级对文档进行排序并限制为一项。

    MyCollection.findOne({}, {sort:{rank:-1}, limit: 1}); // Document with max rank
    MyCollection.findOne({}, {sort:{rank:+1}, limit: 1}); // Document with min rank
    

    所以你得到你的最大排名值是这样的:

    var maxRank = MyCollection.findOne({}, {sort:{rank:-1}, limit: 1}).rank;
    

    【讨论】:

    • 这会给我排名的唯一值吗?
    【解决方案2】:

    你可以用这个:

    var arr = [{
      rank: 1
    },
    {
      rank: 2
    },
    {
      rank: 3
    }];
    
    var max;
    for (var i=0 ; i<arr.length ; i++) {
        if (!max || arr[i].rank > max){
           max = arr[i].rank;
        }
    }
    console.log(max);

    【讨论】:

    • 一开始我是这样的,但我认为他的意思是 Mongo 集合,而不是 javascript 数组。 @garrett 是这样吗?
    • 如果是这样@garrett应该使用sort({"rank":-1}) 然后限制为1
    • 是的,使用 mongo。对不起
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-06
    • 2019-02-20
    • 1970-01-01
    • 2014-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多