在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
来找到答案,然而,您还没有在代码中尝试过这些。似乎你还没有真正看到什么真正回答了你的问题。