Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Meteor 集合如果为空则插入,否则更新_Meteor - Fatal编程技术网

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});
  }
});