mongoosastic findOneAndUpdate在elasticsearch

时间:2015-11-30 06:06:22

标签: node.js elasticsearch mongoosastic

  

问题:在我的示例中,如果我使用 schema.save ,那么它将在弹性搜索中编入索引

     

问题开始当我使用 findOneAndUpdate 时所以它不会弹性索引   如果我插入(即保存)

MovieSchema.findOneAndUpdate(query, reqObject, {
        upsert: true
    }, function(err, results) {
        if (err) {
            if (!update) {
                 var filePath = path.join(__dirname, "../../movie/images/uploads/") + reqObject.imageUrl;
                 fs.unlinkSync(filePath);
             }
            console.log(err)
            callback({
                RESULT_CODE: '-1',
                MESSAGE: 'System error. Please try again'
            });
        } else {

            callback({
                RESULT_CODE: '1',
                MESSAGE: 'Movie inserted'
            });

        }
    });

1 个答案:

答案 0 :(得分:3)

我喜欢使用 findOneAndUpdate

来回答这个问题

示例:

  

注意:传递新:真实选项 upsert:true ,它会起作用

选项将返回更新或创建的对象,因此内部mongoosastic工作,如果插入对象或更新的对象返回然后onty它将插入弹性搜索索引

MovieSchema.findOneAndUpdate(query, reqObject, {
        upsert: true,'new': true
    }, function(err, results) {
        if (err) {
            callback({
                RESULT_CODE: '-1',
                MESSAGE: 'System error. Please try again'
            });
        } else {

            callback({
                RESULT_CODE: '1',
                MESSAGE: 'Movie inserted'
            });

        }
    });