Python 带条件的Mongodb聚合查询
我必须用python在mongodb上执行聚合,但无法这样做 以下是提取的mongodb文档的结构:Python 带条件的Mongodb聚合查询,python,mongodb,mongodb-query,aggregate-functions,Python,Mongodb,Mongodb Query,Aggregate Functions,我必须用python在mongodb上执行聚合,但无法这样做 以下是提取的mongodb文档的结构: {'Category': 'Male', 'details' :[{'name':'Sachin','height': 6}, {'name':'Rohit','height': 5.6}, {'name':'Virat','height': 5} ] } 我想通过聚合函数返回name为Sachin的高度。基本上,我
{'Category': 'Male',
'details' :[{'name':'Sachin','height': 6},
{'name':'Rohit','height': 5.6},
{'name':'Virat','height': 5}
]
}
我想通过聚合函数返回name为Sachin的高度。基本上,我的想法是通过$match apply条件提取数据,同时使用聚合函数进行聚合。这可以通过使用if语句分3步轻松完成,但我希望在1个聚合函数中完成
请注意:没有固定长度的“详细信息”值
如果需要更多解释,请告诉我。您可以使用
$filter
来实现
db.collection.aggregate([
{
$project: {
details: {
$filter: {
input: "$details",
cond: {
$eq: [
"$$this.name",
"Sachin"
]
}
}
}
}
}
])
工作
如果在中使用,请查找
,但需要注意
工作
如果需要将其设置为对象,只需将$arrayElemAr
与$ifNull
db.collection.find({
"details.name": "Sachin"
},
{
"details.$": 1
})