2016-12-20 35 views
0

我目前正在設計一個類似於Gmail標籤系統的系統。在我的「消息」集合中,我有一個字段,其中包含一個數組,其中包含與當前消息關聯的標籤的ID,這些標籤位於不同的Collection中。對於一些消息JSON數據是這樣的:如何通過數組數據字段中的元素過濾Meteor Collection?

{ 
    "_id" : "W9uCWJCqx8ozsbX6t", 
    "name" : "Issue", 
    // ... some more data fields ... 
    "labels" : [ "R2syna2dnRdf4TDfC", "FHrjNbAT7Da2dRR5F" ] // IDs of labels in an array 
} 

如何我會使用沿着.find()方法的線東西搜索包含在其labels領域的特定標籤ID的所有消息?

+0

你可以做這樣的事情'db.messages.find找到 – Veeram

+0

@SagarReddy謝謝,這工作!我沒有意識到find()會在數組內部進行搜索。 – david3de

回答

0

您可以使用MongoDB的$elemMatch運算符。

例子查詢:({: 「 」 標籤})`

Messages.find({labels : {$elemMatch : {$eq: id}}}); 

多個用例可以在docs