【发布时间】:2016-11-30 17:56:04
【问题描述】:
我正在尝试计算我的收藏中的一个值。这是一个示例:
{
"_id" : ObjectId("583e86987f22def116c35055"),
"createdby" : "DEO007",
"valid" : 1
}
在每个文档中,有些“有效”是 0,有些是 1。 就我而言,我只想要按“createdby”分组的具有“有效”的文档总数:1。
我在 MongoDB 中尝试过,它没有任何错误:
db.tme_data.aggregate([{ $match: { valid: 1 } },{"$group": {"_id":"$createdby" , "count":{"$sum":1}}}])
但我无法在我的 python 代码中实现相同的功能。 这是我尝试过的:
collection.aggregate([{"$match":{"$valid":"1"}}, {"$group": {"_id":"$createdby" , "count":{"$sum":1}}}])
它给了我一个空白集合。
PS:
1) 我正在使用 pymongo
2) 这在我的 python 代码中工作正常:
collection.aggregate([{"$group": {"_id":"$createdby" , "count":{"$sum":1}}}])
【问题讨论】:
-
@user3632894 我什至尝试按照您提到的问题的解决方案中的说明使用管道。但是要么解释太简洁,要么我犯了一些错误。无论哪种方式,更详细的解决方案都会有所帮助。
标签: python mongodb pymongo aggregation-framework