2

是否可以根据 mongodb 地图中键的存在来选择性地检索?如果是这样,你将如何去做?

例如,假设我有一个看起来像这样的文档..

{ "_id": 1234,
    "parentfield1" : {
        "childfield1" : { ...},
        "childfield2" : { ...},
        "childfield5" : { ...}, // There might be many childfields.. > 50
    },
} 

如果有多个选项可供选择,我如何能够有选择地从文档中检索一个/某些特定的子字段?其中一些可能不存在于文档中。

IE

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

-> output 

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

它甚至可行吗?是否也可以有效地做?任何帮助都会很棒(python,去)。

4

1 回答 1

0

是的,这就是projection参数 of的目的find

db.collection.find({_id: 1234}, {
    'parentfield1.childfield1': 1,
    'parentfield1.childfield2': 1,
    'parentfield1.childfield3': 1
});

如果给定文档中不存在指定字段,则仍将包含其他匹配字段。

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

于 2013-02-08T16:26:08.180 回答