簡體   English   中英

在MongoDB中檢索嵌入式文檔

[英]Retrieve embedded document in MongoDB

我有一個像這樣的元素集合:

{
    _id: 585b...,
    data: [
        {
            name: "John",
            age: 30
        },
        {
            name: "Jane",
            age: 31
        }
    ]
}

我知道如何查找包含John的文檔:

db.People.find({"data.name", "John"})

但是,然后我得到了整個文檔。 我如何只獲取嵌入的文檔。 所以我想返回這個:

{
    name: "John",
    age: 30
}

對於上下文:這是較大數據集的一部分,我需要檢查是否對此特定文檔進行了某些更新。 由於應用程序的實現方式,嵌入的文檔將不會總是處於相同的索引。

那么如何查詢和返回嵌入式文檔呢?

使用第二個參數隱藏ID

db.people.find({"data.name", "John"}, {_id : 0})

這將輸出

data: [
    {
        name: "John",
        age: 30
    },
    {
        name: "Jane",
        age: 31
    }
]

要僅獲取嵌入式文檔,請使用聚合。

db.test.aggregate([
  {
    $unwind : "$data"
  },
  {
    $match : {"data.name" : "John"}
  },
  {
    $project : {
      _id : 0,
      name : "$data.name",
      age : "$data.age"
    }
  }
])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM