我的基地有一些文件:
//example docs
{"_id": "qwerty12345", "name": "Bob", "cards":["cardId1", "cardId2", "cardId3"]}
我用它来插入数据:
Template.insert.events({
'click add': function(){
if(confirm("Add card?"));
mycollection.update({_id: Session.get('fooId')}, { $addToSet: { cards: this._id}})
}
});
然后我将这个助手用于我的模板:
Template.index.helpers({
cards: function(){
query = mycollection.findOne({_id: Session.get('fooId')});
return query.cards;
}
});
在模板中:
<img src="{{img}}" class="add">
{{#each cards}}
{{this}}<br>
{{/each}}
这很有效,但我遇到了麻烦:
如您所见,每张图片都有id和url({{image}}),我需要为每张卡片(点击)添加图片网址到“mycollection”。
如何制作?
第二个问题: 如何允许mongo将重复项插入“cards”数组?
答案 0 :(得分:4)
你的意思是每张卡都有id和image字段吗?我想是的。
您可以将嵌套对象添加到数组字段中。像那样
mycollection.update({_id: Session.get('fooId')}, { $addToSet: { cards: {id: this._id, image: this.image}}})
。
在模板中:
{{#each cards}}
{{this.id}}: {{this.image}}<br>
{{/each}}
第二个问题:您可以使用$push
代替$addToSet