2014-10-05 40 views
0

我有這樣的MongoDB文檔:MongoDB中得到元素多陣列

{ 
    "post":[ 
     { 
      "name": "post1", 
      "part": [ 
       { 
        "name": "part1", 
        ... 
       },{ 
        "name": "part2", 
        ... 
       } 
      ] 
     },{ 
      "name": "post2", 
      "part": [ 
       { 
        "name": "part3", 
        ... 
       },{ 
        "name": "part4", 
        ... 
       } 
      ] 
     } 
     ... 
    ] 
} 

我想要得到這樣的輸出:

{ 
    "post": [ 
     { 
      "part":[ 
       { 
        "name": "part2" 
       } 
      ] 
     } 
    ] 
} 

我的查詢是這樣的:

db.find_one({"_id": 123},{ 
    "post.%s.part.%s.name" % (0, 1) : 1 
}) 

我列表帖子的已知索引(是0)和部分(是1)

我無法獲得輸出索引,你能幫我獲取數組元素嗎? 我已嘗試$切片,但如何查詢與$切片在多個部分的陣列 謝謝!

回答

0

投影無法投射出特定元素,除非與$匹配。您可以僅限於"post.part.name"(但仍獲取底層數組的每個元素的字段值)。

+0

我成功拿到這個查詢字段:{ \t 'xyzhack':1,#黑客過濾 \t '後':{ 「$切片」:post_index,1]}, \t「post.part .name':{「$ slice」:[part_index,1]} },我添加xyzhack字段不存在,因爲我不知道爲什麼mongodb響應沒有此字段的所有數據 – 2014-10-09 02:54:18