簡體   English   中英

查詢mongodb中子文檔的值

[英]query the value of a sub document in mongodb

我正在使用Java驅動程序,看起來像這樣的文檔(一個真正的測試示例):

{
    "_id" : ObjectId("5207fe359b88bfa6f90a82b0"),
    "meta_id" : "d6eb1b13-50c7-473f-8348-b5a638a542a0",
    "name" : "Fake Name Inc.",
    "created" : ISODate("2013-08-11T21:12:21.533Z"),
    "members" : {
        "5207fe359b88bfa6f90a82af" : [
            "Admin",
            "User"
        ]
    }
}

我想在路徑“ members.5207fe359b88bfa6f90a82af ”(這是一個角色列表)中選擇字符串數組。 我不知道該怎么做。 它看起來像投影可以在這里工作,但我對Mongo來說已經足夠新了,投影的編寫方式並不明顯。

我當然可以加載整個對象,甚至可能只是“成員”字段,但我想我應該能夠准確選擇我正在追蹤的數據。

那么,有沒有人知道如何編寫這樣的查詢?

注意:這個問題表明我可能需要更改文檔的結構以使事情更容易: MongoDB - 按子樹查詢

您可以在find的projection參數中使用點表示法來執行此操作。 在shell中:

db.test.find(
    {_id : ObjectId("5207fe359b88bfa6f90a82b0")},
    {'members.5207fe359b88bfa6f90a82af': 1, _id: 0})

返回:

{
  "members": {
    "5207fe359b88bfa6f90a82af": [
      "Admin",
      "User"
    ]
  }
}

暫無
暫無

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

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