[英]Getting data from two mongodb collections (filtering on _id) in Meteor Application
我有一段時間在這里遇到問題。 我正在創建一個Meteor應用程序,人們可以在其中注冊一個組,上傳一些圖像,並可以為其圖像指定特定的標簽。 我得到了包含_id和name元素的Tag的特定集合。
用戶可以將用於其圖像的標簽存儲在Group集合中,但是此集合獲得了一個數組(在該字段中存儲了可用的標簽_ids )
群組集合-單項
{
"_id" : "uC3PRu3qdcAF2tKK8",
"name" : "Summer Festival 2017",
"token" : "SummerFunUnited",
"tags" : [ "c6vMNnfJzFjEqDSJv", "RYNSsvmafCdRZ6Me9", "9qJD5L6PYCEcbEKcb" ]
}
存儲在標簽集合中的標簽的存儲方式如下:
Mongo標簽集合
{ "_id" : "c6vMNnfJzFjEqDSJv", "name" : "Summerfanatic" }
{ "_id" : "RYNSsvmafCdRZ6Me9", "name" : "Sunshineaddict" }
{ "_id" : "9qJD5L6PYCEcbEKcb", "name" : "Danceman" }
我想創建一個管理面板,管理員可以在其中查找特定組中正在使用的標記。 路由工作正常,我可以在Meteor模板中獲取組的名稱。
問題是,如果我想顯示每個組的標簽名稱 ,我將無法使用它。 我的Mongo查詢不起作用,或者我確實做錯了。
如果我使用和查詢類似:
Groups.find({ tags: { $in: [ "c6vMNnfJzFjEqDSJv", "RYNSsvmafCdRZ6Me9", "9qJD5L6PYCEcbEKcb" ] }})
我沒有結果。
我真的希望你們能為我提供幫助,或者希望您找到一種更合適的方式來存儲標簽(在將來,管理員仍然必須添加新標簽)。
親切的問候!
您的查詢意思是:
“ 在給定數組中找到tags
字段至少包含一個值(即標簽ID)的組文檔 ”。
因此,這對於列出與某些給定標簽關聯的組將是相關的。
您說要列出與給定組關聯的標簽(按名稱)。
一旦您擁有所需的組文檔數據,這聽起來像是一個非常簡單的查詢:
“ 找到標記文檔,其中_id
字段位於給定數組中 ”
然后使用您的Blaze模板遍歷這些標簽並顯示其name
。
就像是:
Spacebars
{{#each groupDoc in groupDocs}}
{{> groupTemplate groupDoc1=groupDoc}}
{{/each}}
<template name="groupTemplate">
{{#each tagDoc in tagsDocs groupDoc1}}
{{tagDoc.name}}
{{/each}}
</template>
JavaScript的
Template.groupTemplate.helpers({
tagsDocs: function (groupDoc) {
var tagsIdArray = groupDoc.tags;
return Tags.find({
_id: {
$in: tagsIdArray
}
});
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.