Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在MongoDB聚合中同时使用$group和$cond?_Mongodb_Mongodb Query_Aggregation Framework - Fatal编程技术网

如何在MongoDB聚合中同时使用$group和$cond?

如何在MongoDB聚合中同时使用$group和$cond?,mongodb,mongodb-query,aggregation-framework,Mongodb,Mongodb Query,Aggregation Framework,我有下面这样的收藏 { "userId" : "1", "feedbackGiven" : true } { "userId" : "1", "feedbackGiven" : false } { "userId" : "1", "feedbackGiven" : true } { "userId" : "2", "feedbackGiven" : false } { "userId" : "2", "feedbac

我有下面这样的收藏

{
    "userId" : "1",
    "feedbackGiven" : true
}
{
    "userId" : "1",
    "feedbackGiven" : false
}
{
    "userId" : "1",
    "feedbackGiven" : true
}
{
    "userId" : "2",
    "feedbackGiven" : false
}
{
    "userId" : "2",
    "feedbackGiven" : true
}
{
    "_id" : "1",
    "feedbackGiven" : [ 
        true, 
        false,
        true
    ]
}
{
    "_id" : "2",
    "feedbackGiven" : [ 
        false,
        true
    ]
}
{
    "_id" : "1",
    "totalFeedbackGive" : 3,
    "falseFeedbackCount" : 1
}
{
    "_id" : "2",
    "totalFeedbackGive" : 1,
    "falseFeedbackCount" : 1
}
我需要在userId上对其进行分组,并获得两个值,即totalGivenFeedback计数和false feedbackgive计数

我试着在下面提问

db.collection.aggregate([
{
      $group: { _id: "$userId", feedbackGiven: { $push : "$feedbackGiven"} }
}
])
这将产生如下结果

{
    "userId" : "1",
    "feedbackGiven" : true
}
{
    "userId" : "1",
    "feedbackGiven" : false
}
{
    "userId" : "1",
    "feedbackGiven" : true
}
{
    "userId" : "2",
    "feedbackGiven" : false
}
{
    "userId" : "2",
    "feedbackGiven" : true
}
{
    "_id" : "1",
    "feedbackGiven" : [ 
        true, 
        false,
        true
    ]
}
{
    "_id" : "2",
    "feedbackGiven" : [ 
        false,
        true
    ]
}
{
    "_id" : "1",
    "totalFeedbackGive" : 3,
    "falseFeedbackCount" : 1
}
{
    "_id" : "2",
    "totalFeedbackGive" : 1,
    "falseFeedbackCount" : 1
}
我可以从JavaScript代码中使用上述结果获得总反馈和错误反馈计数

但我的问题是,有没有一种方法可以使用MongoDB查询获得它

我期待的结果如下

{
    "userId" : "1",
    "feedbackGiven" : true
}
{
    "userId" : "1",
    "feedbackGiven" : false
}
{
    "userId" : "1",
    "feedbackGiven" : true
}
{
    "userId" : "2",
    "feedbackGiven" : false
}
{
    "userId" : "2",
    "feedbackGiven" : true
}
{
    "_id" : "1",
    "feedbackGiven" : [ 
        true, 
        false,
        true
    ]
}
{
    "_id" : "2",
    "feedbackGiven" : [ 
        false,
        true
    ]
}
{
    "_id" : "1",
    "totalFeedbackGive" : 3,
    "falseFeedbackCount" : 1
}
{
    "_id" : "2",
    "totalFeedbackGive" : 1,
    "falseFeedbackCount" : 1
}
有人能给我一个解决方案吗?

你可以使用下面的方法

因此,在应用stage之后,需要使用累加器来计算文档数

其次,您需要使用累加器统计
错误反馈的文档数