編輯的文檔的子領域:解決方案可以在評論的MongoDB:如何更新(流星)
細心發現:noob問題在未來
我有一個蒙戈集合稱爲「公司」。下面是一個例子條目:
{
name: 'Company 1',
createdAt: new Date(),
tags: [
{tag: 'tag 1', count: 63},
{tag: 'tag 2', count: 47},
{tag: 'tag 3', count: 13}
]
}
正如在本例中可以看出,公司的標籤都保存在對象的數組,每個標籤具有記憶標籤被點擊的頻率計數屬性。
現在,我想在用戶點擊標籤時增加計數。我在事件處理函數中這樣做。我試圖做到這一點的方式如下:
第1步:我必須找到相關的公司文件。標籤是container-div中的list元素中的「href元素」。裏面該div,我能找到該公司的名稱,所以我用這個名字來獲得相關文件:
var companyName = event.target.parentElement.parentElement.children[1].textContent;
var company = Companies.findOne({name: companyName});
到目前爲止是這種情況,但我想,有一個清晰的解決方案。我特別不喜歡孩子[1]的一部分。任何建議?
第2步:現在我有公司,我想增加被點擊的標籤。這有點令人討厭,因爲我需要選擇數組的正確元素進行更新。我有我想要更新的標籤的文本(來自event.target.text),但是如何從標籤數組中選擇正確的對象?我認爲這與位置$操作符有關,但我還不知道。
Companies.update({_id: company._id, }, /* MAGIC HAPPENS HERE */);
這裏的HTML:
<head>
<title>App</title>
</head>
<body>
<div class="container">
{{> company}}
</div>
</body>
<template name="company">
<h2>{{name}}</h2>
{{#each tags}}
{{> tag}}
{{/each}}
</template>
<template name="tag">
<li><a href="">{{tag}}</a> - {{count}}</li>
</template>
請包括html代碼以及 – mwarren 2015-02-11 23:06:10
完成。添加了html。 – Pueggel 2015-02-11 23:16:38
看看[標籤包](https://atmospherejs.com/?q=tags),主要是'patrickleet:tags'和使用'autoform'標籤。否則,你在正確的軌道上[嵌入標籤](https://stackoverflow.com/questions/8455685/how-to-implement-post-tags-in-mongo)。 – 2015-02-11 23:44:49