1

问题:在我的示例中,如果我使用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'
            });

        }
    });

4

1 回答 1

3

我喜欢使用findOneAndUpdate的答案

例子:

注意:通过new : true选项upsert: true并且它将起作用

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

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

        }
    });

于 2015-11-30T06:11:26.033 回答