2016-03-02 40 views
0

奇怪的是,我找不到這個非常簡單的問題的答案,我找不到一種方法可以通過我自己的文檔來完成。列表中所有子文檔的列表

這是一個示範模式

{ 
    Test : [ 
     { 
      foo:0,fighter:[] 
     }, 
     { 
      foo:1,fighter:[] 
     }, 
     { 
      food:2,fighter:[] 
     } 
    ] 
} 

我希望能夠找回全部文件中Test

我發現,檢索你可以做的第一fighter的內容:

Collection.find({_id: 0 , 'Test.foo': 0})

但有關獲取整個Test AR是什麼射線 ?或整個fighter陣列?

{ foo: 0, fighter: [ "john", "fitz", "gerald" ] } 
{ foo: 1, fighter: [] } 
{ food: 2, fighter: [] } 

或只是整個figther(富0)含量

"john", "fitz", "gerald" 

我發現的唯一的事情是Collection.findOne({_id: id}).Test,但它不工作,我越來越

未定義的「測試」方法。

+0

「我得到未定義的」測試「方法」 - 這意味着沒有這樣的文件通過該ID。 –

回答

0

您將不得不使用投影。你可以做這樣的事情:

Collection.find({_id: 0}, { Test: { $elemMatch: { foo : 0 } } })

這會給你的Test數組,但只用一個元素,即符合條件foo : 1

,僅保留Test陣列和第一個元素不是整個文檔中使用此:

Collection.find({_id: 0}, { Test: 1, _id: 0 })

而且

你可以找到更多關於這個here

希望這會有所幫助。

相關問題