Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/281.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.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聚合python中,如何匹配具有两个不同值的单个字段并统计匹配的文档?_Python_Mongodb_Aggregation Framework_Pymongo_Pymongo 3.x - Fatal编程技术网

在mongoDB聚合python中,如何匹配具有两个不同值的单个字段并统计匹配的文档?

在mongoDB聚合python中,如何匹配具有两个不同值的单个字段并统计匹配的文档?,python,mongodb,aggregation-framework,pymongo,pymongo-3.x,Python,Mongodb,Aggregation Framework,Pymongo,Pymongo 3.x,我有这样的文件 {"title":"title_1","website":"website_1","isEdited":"true"}, {"title":"title_2","website":"website_1","isEdited":"true"}, {"title":"title_3","website":"website_2"}, {"title":"title_4","website":"website_3","isEdited":"false"} 所以文档有多个值(None、t

我有这样的文件

{"title":"title_1","website":"website_1","isEdited":"true"},
{"title":"title_2","website":"website_1","isEdited":"true"},
{"title":"title_3","website":"website_2"},
{"title":"title_4","website":"website_3","isEdited":"false"}
所以文档有多个值(None、true、flase)的“isedit”字段,我想计算它们的所有出现次数,并将它们按类似方式分组

而不是上面我能得到这个

{u'IsEdedCount':2,u'id':u'website\u 1'}

用这条管道

[
  {"$match": {"isEdited": 'true'}},
  {"$group": {"_id": "$website", "isEditedCount": {"$sum": 1}}}
]
[
  {"$match":{"$or":[{"isEdited": None},{"isEdited": 'false'}]}},
  {"$group":{"_id": "$website","isNotEditedCount": {"$sum": 1}}}
]
及 [ {u'IsNotedEdCount':1,u'id':u'website\u 2'}, {u'IsNotedEdCount':1,u''u id':u'website'u 3'} ]

用这条管道

[
  {"$match": {"isEdited": 'true'}},
  {"$group": {"_id": "$website", "isEditedCount": {"$sum": 1}}}
]
[
  {"$match":{"$or":[{"isEdited": None},{"isEdited": 'false'}]}},
  {"$group":{"_id": "$website","isNotEditedCount": {"$sum": 1}}}
]

我想将两个管道合并在一个管道中

@neil这可能是重复的,但正如您所看到的,我有一个字段有三个不同的值,我想在单个管道中的两个字段中计算它们的计数。因此,您在计算时使用了
$cond
$ifNull
来找到答案,然而,您还没有在代码中尝试过这些。似乎你还没有真正看到什么真正回答了你的问题。