如何使用python选择仅匹配的mongodb子文档 [英] How to select only matched sub-document of mongodb using python

查看:110
本文介绍了如何使用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:11proj_id:91member_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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆