2015-05-26 60 views
3

我有以下蒙戈集合:在Meteor中,如何從數組字段發佈單個對象?

{ 
id: '123456', 
name: 'GameXYZ', 
reviews: [ 
    {createdBy: 'Bob', score: 5}, {createdBy: 'John', score: 8} 
] 
} 

我想創建一個發佈函數返回僅由Bob創建的回顧:

{ 
    reviews: [ 
    {createdBy: 'Bob', score: 5} 
    ] 
} 

我已經試過這樣:

return myCollection.find({'reviews.createdBy': 'Bob'}, {'reviews.$': 1}); 

問題是Meteor返回整個文檔。根據他們的文檔,「客戶端尚未提供$和$ elemMatch等字段操作符。」 我的功能在服務器上運行,所以我不知道爲什麼它不工作。它確實工作在蒙戈殼牌。

我的問題是:任何人都可以推薦一種方法來發布Meteor中只有該數組的單個對象嗎?

+0

試試這個find({「reviews」:{「$ elemMatch」:{「createdBy」:「Bob」}}} {{reviews。$。createdBy「: 1})' – Yogesh

+0

我試過了,但不幸的是,它在客戶端和服務器上都不起作用。它似乎只適用於Mongo Shell。我最終採納了諾亞的建議並創建了評論集。不管怎麼說,還是要謝謝你。希望Meteor能很快支持elemMatch。 – Kavy

回答

1

這是最好的,就像discover meteor中的註釋示例一樣。創建新集合reviews。你可以把你需要的東西放在它裏面,但它必須具有審查的內容。通過這種方式,你可以發佈並找到它reviews.find({reviewsId: the id of the collection; in this case 123456})

+0

謝謝諾亞。我創建了評論集合,並在其中添加多個文檔,每個文檔都有其「適用的內容」字段。 – Kavy

相關問題