Meteor 集合如果为空则插入,否则更新
此代码显示一个主菜单,其中包含要单击的菜单项。“模板.主菜单”Meteor 集合如果为空则插入,否则更新,meteor,Meteor,此代码显示一个主菜单,其中包含要单击的菜单项。“模板.主菜单” 单击menuItem时,我需要将menuItem的值存储在文档中,但如果用户单击其他项,则我需要更改该值,而不是创建另一个文档 下面的代码未使用新的menuItem值更新文档。谢谢 Tasks=newmongo.Collection('Tasks'); Template.mainMenu.helpers({ 菜单项:[ {menuItem:“task1”}, {menuItem:“task2”}, {menuItem:“任务3”}
单击menuItem时,我需要将menuItem的值存储在文档中,但如果用户单击其他项,则我需要更改该值,而不是创建另一个文档 下面的代码未使用新的menuItem值更新文档。谢谢
Tasks=newmongo.Collection('Tasks');
Template.mainMenu.helpers({
菜单项:[
{menuItem:“task1”},
{menuItem:“task2”},
{menuItem:“任务3”},
{menuItem:“任务4”},
{menuItem:“任务5”},
{menuItem:“task6”},
{menuItem:“任务7”}
]
});
Template.main菜单.events({
“click.menuItem”:函数(事件){
var item=$(event.currentTarget).data('value');
if(Tasks.find().count()==0){
插入({menuItem:item});
}否则{
更新({u id:item.{u id},{$set:{menuItem:item}});
}
}
});代码>Upsert将使用新值更新id,而无需插入新行。如果您传递的id在数据库中不存在,它将创建一个新的id
Template.mainMenu.events({
'click .menuItem': function (event) {
var item = $(event.currentTarget).data('value');
Tasks.upsert({_id: item._id} ,{$set: {menuItem: item}});
}
});
更多信息:
这是语法,希望对您有所帮助:)
Template.mainMenu.events({
'click .menuItem': function (event) {
var item = $(event.currentTarget).data('value');
Tasks.update({_id: item._id} ,{$set: {menuItem: item}},{upsert : true});
}
});