javascript - 如何仅在 Meteor 中不存在时插入

标签 javascript meteor

我正在尝试使用 html 中的表单更新我的主题集合。当我使用 topic.insert() 时,我可以将每个文档添加到集合中,但如果我使用 update 则不起作用。仅当文档尚不存在时,我才想将其添加到集合中。

Topics = new Mongo.Collection("Topics");

if(Meteor.isClient){
    Template.body.helpers({
    topic: function(){
    return Topics.find({});
    }
    });
    Template.body.events({
            "submit .new-topic": function(event){

            //prevent reload on submit
            event.preventDefault();
            //get content from form
            var title = event.target.title.value;
            var subtopic = event.target.subtopic.value;
            var content = event.target.content.value;
            var video = event.target.video.value;

            Topics.update({
                title: title},{
                title: title,
                subtopic: subtopic, 
                content: content,
                video: video
                },
                {upsert: true}
                );
        //clear forms
            event.target.title.value = "";
            event.target.subtopic.value = "";
            event.target.content.value="";
            event.target.video.value="";
            }
            });
}   

最佳答案

您应该使用upsert

Blend of update +‎ insert

Topics.upsert({
    // Selector
    title:title
}, {
    // Modifier
    $set: {
        ...
    }
});

See Meteor Docs (collection.upsert).

关于javascript - 如何仅在 Meteor 中不存在时插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33110064/

相关文章:

javascript - mongodb 中的对象元数据(架构)设计

javascript - 首先在下拉菜单中选择jquery

javascript - 我可以使用我自己的登录表单进行 aws cognito 吗?

javascript - 如何在 Angular2 的可观察对象中创建可观察对象

javascript - div 上的奇怪填充

meteor - 从子函数内部调用 React setState

javascript - 使用 REST API 时,Meteor 是否保留 react 性

javascript - jQuery 在不同大小的容器中居中多个动态图像

javascript - 解析 Var 并执行计算

javascript - React-Router 在主组件和侧边栏组件之间传递 props