猿问

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

是否有可能根据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,请执行)。


慕的地6264312
浏览 177回答 1
1回答

弑天下

是的,这就是projection参数的目的find:db.collection.find({_id: 1234}, {    'parentfield1.childfield1': 1,    'parentfield1.childfield2': 1,    'parentfield1.childfield3': 1});如果给定文档中没有指定字段,则其他匹配字段仍将包括在内。projection如果希望它是动态的,则以编程方式构建参数对象。
随时随地看视频慕课网APP

相关分类

Go
我要回答