我有一个mongo聚合查询,我想在一些json数据的基础上创建该查询,因此该查询将类似于动态查询,并将根据json选择数组进行增长
{
RuleResultSUmmaryByCategoryRequest:{
"topLevelFilterIds": [],
"category": "abc",
"selection": [{
"value": "value",
"category": "category"
}]
}
}
我的mongo聚合查询如下
db.rule_execution_result.aggregate([{
$match: {
$and: [{
'topLevelFilter.id': {
$in: ['5fd1bd7868d7ac4e211a7642']
}
},
{
'ruleCategory': 'test'
}
]
}
},
{
$group: {
_id: {
ruleCategory: '$ruleCategory',
topLevelFilter: '$topLevelFilter.id'
},
name: {
$first: '$topLevelFilter.name'
},
type: {
$first: '$topLevelFilter.type'
},
fail: {
$sum: {
$cond: [{
$eq: ['$summaryStatus', 0]
}, 1, 0]
}
}
}
},
{
$group: {
_id: '$_id.ruleCategory',
fail: {
$sum: '$fail'
},
portfolio: {
$push: {
id: '$_id.topLevelFilter',
name: '$name',
type: '$type',
fail: '$fail'
}
}
}
},
{
$group: {
_id: 0,
result: {
$push: {
category: '$_id',
fail: '$fail',
portfolio: '$portfolio'
}
},
fail: {
$sum: '$fail'
}
}
},
{
$project: {
_id: 0,
data: '$result',
total: {
fail: '$fail'
}
}
}
]).pretty()
在这里,我需要在json选择请求对象上使用循环,这是我从match和group的API和genrate动态阶段获得的,我是python新手,所以任何人都可以帮助我在python中以动态方式编写它
我已经完成了动态查询,现在我能够创建一个动态mongo聚合查询
如果有人能帮助我优化或以任何更好的方式实现同样的目标,那将是巨大的帮助
相关问题 更多 >
编程相关推荐