python - 如何在 python 中为 db.collection.group() 编写 mongodb 查询

标签 python mongodb mongodb-query pymongo

我正在处理 MongoDB 查询

db.BH.group({
"key": {
    "AccountId": true,
},
"initial": {
    "count": 0
},
"reduce": function(obj, prev) {
    if (true != null) if (true instanceof Array) prev.count += true.length;
    else prev.count++;
},
"cond":     
    {"$or":[{"Url":{"$regex":"(google)"}},{"Url":{"$regex":"(facebook)"}}]} 
}); 

查询在 MongoDB Shell(Robomongo) 中运行良好。

我已经为 python 编写了相同的查询。

db.BH.group({
"key": {
    "AccountId": True,
},
"initial": {
    "count": 0
},
"reduce": "function(obj, prev) {"
    "if (true != null) if (true instanceof Array) prev.count += true.length;"
    "else prev.count++;"
"}",
"cond": {"$or":[{"Url":{"$regex":"(google)"}},{"Url":{"$regex":"(facebook)"}}]} 
}) 

但是查询出现错误。

TypeError: group() takes at least 5 arguments (2 given)

我尝试通过以下网站(URL)中给出的方法解决错误

http://blog.pythonisito.com/2012/05/aggregation-in-mongodb-part-1.html

但同样的错误仍然存​​在。

最佳答案

group的语法在 PyMongo 中是不同的。 Javascript中参数对象中的keyinitial等键在Python中都是关键字参数:

db.BH.group(key = , initial = , reduce = , cond = )

关于python - 如何在 python 中为 db.collection.group() 编写 mongodb 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29039298/

相关文章:

java - mongodb 与 java 中的 where 子句不同

javascript - 仅对现有字段进行排序

javascript - 如何在 django 框架中将不同用户的多条推文嵌入到 HTML 中?

python - DecimalField 问题,django 模型的 max_digits

python - 如何从 IDLE 中以彩色物理打印 python 代码?

python - 过滤 BeautifulSoup

javascript - 将代码连接到 MongoDB 数据库出现错误 : Error: querySrv ENODATA _mongodb. _tcp.cluster0.h5prp.mongodb.net

node.js - 如何使用mongoose.connect检查mongodb连接期间数据库是否存在?

node.js - 无法找到 $geoNear 查询的索引

javascript - 根据类别更新对象类型的mongodb字段