首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何对多个$cond的查询进行分组?

如何对多个$cond的查询进行分组?
EN

Stack Overflow用户
提问于 2013-12-30 17:44:12
回答 1查看 39.7K关注 0票数 34

我想像下面这样查询,但这里只包含一个$cond

如何使用两个$cond进行查询

代码语言:javascript
复制
collection.aggregate(
    { 
        $match : { 
            '_id' : {$in:ids}
        } 
    },
    {
        $group: {
            _id: '$someField',
            ...
            count: {$sum: { $cond: [ { $eq: [ "$otherField", false] } , 1, 0 ] }}
        }
    },
    function(err, result){
        ...
    }
);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-31 04:46:42

您希望在{$cond:[]}中使用复合表达式-类似于:

代码语言:javascript
复制
collection.aggregate(
    { 
        $match : { 
            '_id' : {$in:ids}
        } 
    },
    {
        $group: {
            _id: '$someField',
            ...
            count: {$sum: { $cond: [ {$and : [ { $eq: [ "$otherField", false] },
                                               { $eq: [ "$anotherField","value"] }
                                     ] },
                                     1,
                                     0 ] }}
        }
    },
    function(err, result){
        ...
    }
);

这里有$and operator文档:http://docs.mongodb.org/manual/reference/operator/aggregation/#boolean-operators

票数 65
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20836978

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档