转换 MongoDB 查询做 PyMongo 格式
Converting MongoDB query do PyMongo format
各位,
我有一个 MongoDB 查询,我想在我的 Python 代码中执行:
db.authentication.aggregate(
{$group:{_id:{'cpf':"$person.cpf", 'data':"$created_at"}, 'chamadas':{$push:"$device_data.metaChamadas.duration"}}},
{$project:{
'cpf':"$_id.cpf",
'tamanho':{$size:{$arrayElemAt:["$chamadas",0]}}
}}
)
我正在使用 Mongoengine,因为它支持原始 PyMongo 查询,但到目前为止我无法弄清楚转换:
documents = list(Authentication.objects(__raw__={
PYMONGO QUERY HERE
}).limit(10))
有什么想法吗?
所有 mongoengine.queryset.QuerySet
都有一个可以用聚合命令作为参数调用的聚合方法。
翻译您的 MongoDb 查询,您应该有这样的查询:
pipeline = (
{
'$group': {
'_id': {
'cpf': '$person.cpf',
'data': '$created_at'
},
'chamadas': {
'$push': '$device_data.metaChamadas.duration'
}
}
},
{
'$project': {
'cpf': '$_id.cpf',
'tamanho': {
'$size': {
'$arrayElemAt': ['$chamadas', 0]
}
}
}
}
)
data = Authentication.objects.aggregate(*pipeline)
print(list(data))
各位,
我有一个 MongoDB 查询,我想在我的 Python 代码中执行:
db.authentication.aggregate(
{$group:{_id:{'cpf':"$person.cpf", 'data':"$created_at"}, 'chamadas':{$push:"$device_data.metaChamadas.duration"}}},
{$project:{
'cpf':"$_id.cpf",
'tamanho':{$size:{$arrayElemAt:["$chamadas",0]}}
}}
)
我正在使用 Mongoengine,因为它支持原始 PyMongo 查询,但到目前为止我无法弄清楚转换:
documents = list(Authentication.objects(__raw__={
PYMONGO QUERY HERE
}).limit(10))
有什么想法吗?
所有 mongoengine.queryset.QuerySet
都有一个可以用聚合命令作为参数调用的聚合方法。
翻译您的 MongoDb 查询,您应该有这样的查询:
pipeline = (
{
'$group': {
'_id': {
'cpf': '$person.cpf',
'data': '$created_at'
},
'chamadas': {
'$push': '$device_data.metaChamadas.duration'
}
}
},
{
'$project': {
'cpf': '$_id.cpf',
'tamanho': {
'$size': {
'$arrayElemAt': ['$chamadas', 0]
}
}
}
}
)
data = Authentication.objects.aggregate(*pipeline)
print(list(data))