Python 根据地图中键的存在有选择地检索

Python 根据地图中键的存在有选择地检索,python,mongodb,go,querying,Python,Mongodb,Go,Querying,是否可以根据mongodb中映射中的键的存在选择性地检索?如果是这样的话,你怎么做呢 例如,假设我有一个像这样的文档 { "_id": 1234, "parentfield1" : { "childfield1" : { ...}, "childfield2" : { ...}, "childfield5" : { ...}, // There might be many childfields.. > 50 }, } 如

是否可以根据mongodb中映射中的键的存在选择性地检索?如果是这样的话,你怎么做呢

例如,假设我有一个像这样的文档

{ "_id": 1234,
    "parentfield1" : {
        "childfield1" : { ...},
        "childfield2" : { ...},
        "childfield5" : { ...}, // There might be many childfields.. > 50
    },
} 
如果有多个选项可供选择,我如何能够有选择地从文档中检索某个特定的子字段?其中一些可能不存在于文档中

i、 e

这是否可行?是否也可以有效地执行?
任何帮助都会很好(python,go)。

是的,这就是
projection
参数的目的:

db.collection.find({u id:1234}){
“parentfield1.childfield1”:1,
“parentfield1.childfield2”:1,
“parentfield1.childfield3”:1
});
如果指定的字段在给定的文档中不存在,则仍将包括其他匹配字段

如果希望参数对象是动态的,则以编程方式构建
投影
参数对象

input "childfield1", "childfield2", "childfield3"

-> output 

{ "_id": 1234,
  "parentfield1": {
      "childfield1" : { ... },
      "childfield2" : { ... },
  },
}