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

2024-06-01 12:37:46 发布

您现在位置:Python中文网/ 问答频道 /正文

是否可以根据mongodb中映射中存在的密钥有选择地检索?如果是这样的话,你该怎么做呢?你知道吗

假设我有一个这样的文档,例如。。你知道吗

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

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

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

-> output 

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

这是可行的吗?是否也能有效地做到这一点? 任何帮助都会很好(python,go)。你知道吗


Tags: 文档idmongodb选项密钥bemanythere
1条回答
网友
1楼 · 发布于 2024-06-01 12:37:46

是的,这就是^{}projection参数的用途:

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

如果指定的字段在给定的文档中不存在,则其他匹配的字段仍将包括在内。你知道吗

如果希望projection参数对象是动态的,那么可以通过编程方式构建它。你知道吗

相关问题 更多 >