【问题标题】:Aggregate an array in a document in mongoose在 mongoose 的文档中聚合一个数组
【发布时间】:2017-08-18 11:43:15
【问题描述】:

我有一个投票应用程序,我有一个如下的猫鼬方案:

var optionSchema=new mongoose.Schema({
    option:{type:String,required:true},
    count:{type:Number,required:true}
});

var pollSchema = new mongoose.Schema({
    creator:{type:String,required:true},
    title:{type:String,required:true},
    options:[optionSchema]
});

我试图通过节点中每个文档的所有选项的总计数来确定是否可以拉出前 X 个文档

【问题讨论】:

    标签: node.js mongoose aggregate


    【解决方案1】:

    试试这样的:

    db.polls.aggregate([
        {
             $project: {
                totalOptionCount: { $sum: "$options.count"}
            },
        },
        { $sort : { totalOptionCount : 1 }},
        { $limit : 5 }
    ])
    

    【讨论】:

    • 这是完美的。我必须做的唯一改变是在排序后我需要从 totalOptionCount 中减去 $。
    • 在没有编辑器的情况下我花了太多时间来格式化答案 XD 那你能接受我的答案吗?
    • 我很抱歉我以为我点击了它,这就是我使用移动网站得到的结果
    猜你喜欢
    • 2021-09-17
    • 2015-10-04
    • 1970-01-01
    • 2020-07-26
    • 2020-08-02
    • 1970-01-01
    • 2021-06-15
    • 2015-05-29
    • 1970-01-01
    相关资源
    最近更新 更多