如何使用python选择仅匹配的mongodb子文档 [英] How to select only matched sub-document of mongodb using python
本文介绍了如何使用python选择仅匹配的mongodb子文档的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
Document in Mongo ->
{
emp_id : 11
proj_info :
[{
proj_id : 91
proj_name : 'abc'
proj_team :
[{
name : 'Ravi'
member_emp_id : '55'
designation : 'manager'
}
{
name : 'Ram'
member_emp_id : '66'
designation : 'consultant'
}]
}
{
proj_id : 92
proj_name : 'pqr'
proj_team :
[{
name : 'Sham'
member_emp_id : '15'
designation : 'manager'
}]
}
{
proj_id : 93
proj_name : 'xyz'
proj_team :
[{
name : 'Karan'
member_emp_id : '25'
designation : 'manager'
}]
}
}]
}
这是我用Python编写的mongoClient查询-
This is mongoClient query which is I written in Python -
collectionObject.aggregate([{'$match':"proj_info.proj_team.member_emp_id":'55',"proj_info.proj_id":'91','emp_id':'11'}},
{'$unwind':"$proj_info"},
{'$match': {"proj_info.proj_team.member_emp_id":'55'}},
{'$unwind': "$proj_info.proj_team"},
{"$group": {"_id": "$_id","key": {"$first": "$key"},"proj_team": {"$push": "proj_info.proj_team"}}}]):
示例我希望输出仅作为子文档,其输入为emp_id:11
,proj_id:91
和member_emp_id:55
.
Example I want the output as only sub-document, whose inputs is emp_id:11
, proj_id:91
and member_emp_id:55
.
我想要预期的输出=>
I want Expected output =>
proj_team : {
name : 'Ravi'
member_emp_id : '55'
designation : 'manager'
}
请帮助我解决. ===================== -------- ==============
Please help me to solve. =======================------===============
推荐答案
谢谢,但是我仍然不得不进行一些更改,因为它没有提供预期的输出,所以我做了这些更改=>
Thanks but still I had to make some changes as it was not giving expected output, I made these changes =>
collectionObject.aggregate([
{'$match':{'emp_id': '11', "proj_info.pro_id": '11' }},
{'$unwind': "$proj_info"},
{'$match': {"proj_info.proj_team.member_emp_id": '55' }},
{'$unwind': "$proj_info.proj_team"},
{'$project': {"proj_info.proj_team": 1,"_id" : 0}}
]):
这对我有用.
感谢您的帮助.
这篇关于如何使用python选择仅匹配的mongodb子文档的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文