此代码显示一个mainMenu,其中包含要单击的menuItems。 “Template.mainMenu”
当单击menuItem时,我需要将menuItem的值存储在文档中,但如果用户单击其他项目,则需要更改该值而不创建其他文档。
以下代码未使用新的menuItem值更新文档。感谢
Tasks = new Mongo.Collection('tasks');
Template.mainMenu.helpers({
menuItems: [
{menuItem: "task1"},
{menuItem: "task2"},
{menuItem: "task3"},
{menuItem: "task4"},
{menuItem: "task5"},
{menuItem: "task6"},
{menuItem: "task7"}
]
});
Template.mainMenu.events({
'click .menuItem': function (event) {
var item = $(event.currentTarget).data('value');
if (Tasks.find().count() === 0) {
Tasks.insert({menuItem: item});
} else {
Tasks.update({_id: item._id} ,{$set: {menuItem: item}});
}
}
});
答案 0 :(得分:0)
Upsert将使用新值更新id,而不插入新行。如果您传递的ID在数据库中不存在,则会创建一个新的。
Template.mainMenu.events({
'click .menuItem': function (event) {
var item = $(event.currentTarget).data('value');
Tasks.upsert({_id: item._id} ,{$set: {menuItem: item}});
}
});
答案 1 :(得分:0)
Template.mainMenu.events({
'click .menuItem': function (event) {
var item = $(event.currentTarget).data('value');
Tasks.update({_id: item._id} ,{$set: {menuItem: item}},{upsert : true});
}
});
这是语法,希望它会有所帮助:)