MongoDB 查询仅返回一个字段

mr.*_*oop 4 javascript mongodb mongodb-query

假设我的文档如下所示

{
    "_id": 2,
    "Name": "Abcd",
    "Connected": [1,3]
}
Run Code Online (Sandbox Code Playgroud)

现在,我想[1,3]通过_idor检索数组Name。目的是将这个数组保存到 JavaScript 数组中。

因此我尝试使用,db.myCollection.find({"_id":2},{"Connected":1})但它再次返回一个文档而且_id仍然像这样

{ "_id" : 2, "Connected" : [ 1, 3 ] }
Run Code Online (Sandbox Code Playgroud)

我怎样才能只检索该数组?

Luc*_*bel 6

您可以选择从结果中删除 ID,方法是0在投影中将其设置为:

db.myCollection.find({"_id":2},{"Connected":1, "_id":0})
Run Code Online (Sandbox Code Playgroud)

ID 字段是唯一可以在投影中排除的字段,同时包含其他字段。

如果你想直接获取Connected字段,你可以使用findOne

db.myCollection.findOne({"_id":2}, {"Connected":1, "_id":0}).Connected
Run Code Online (Sandbox Code Playgroud)

  • 第二个查询有效,但仅在“mongosh”shell 中有效,而在“mongo”中无效。在“mongo”中,仍然必须先执行“arr = db.coll.find(...).toArray()”,然后执行“arr[0].Connected” (2认同)