流星& Mongo:addToSet插入

时间:2015-04-22 15:35:30

标签: meteor

我的基地有一些文件:

//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”数组?

1 个答案:

答案 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