【问题标题】:Waterline: Sum/Avg/Mix/Max of populated values in waterline水线:水线中填充值的总和/平均/最小值/最大值
【发布时间】:2016-03-01 13:01:46
【问题描述】:

请看示例:

用户对象:

{ 
    name: 'Mike',
    age: 16,
    createdAt: Wed Feb 12 2014 18:06:50 GMT-0600 (CST),
    updatedAt: Wed Feb 12 2014 19:30:54 GMT-0600 (CST),
    id: 7 
}

与用户 Mike 关联的宠物对象

{
    name: 'Scooby',
    color: 'pink',
    petAge: 2
    id: 1,
    createdAt: Wed Feb 12 2014 18:06:50 GMT-0600 (CST),
    updatedAt: Wed Feb 12 2014 18:06:50 GMT-0600 (CST) 
}

{
    name: 'Alpha',
    color: 'red',
    petAge: 5
    id: 2,
    createdAt: Wed Feb 12 2014 18:16:50 GMT-0600 (CST),
    updatedAt: Wed Feb 12 2014 18:16:50 GMT-0600 (CST) 
}

我想获取 Mike 宠物的“petAge”总和。我正在尝试以下查询,但它不起作用。

User.find({name:'Mike'})
.populate('pets')
.sum('pets.petAge')
.exec(function(e,r){

});

我想了解是否可以得到petAge 的总和。 (sum('pets.petAge'))。

【问题讨论】:

  • 试试sum('petAge')。它应该可以工作,因为在填充pets 之后,您将拥有一组以petAge 作为属性的宠物。
  • @MukeshSharma,刚刚尝试过。那是行不通的。

标签: javascript node.js sails.js waterline sails-mongo


【解决方案1】:

你可以做的是像这样在 Pets 模型上使用 sum 函数。

Pets.sum('petAge').where({user: "UserID"}).exec(function (e,r) {
//do what you want here
});

这里的UserID是用户的id。

【讨论】:

    猜你喜欢
    • 2020-03-01
    • 2019-11-23
    • 2014-04-10
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 2014-10-04
    • 1970-01-01
    • 2014-11-20
    相关资源
    最近更新 更多