elasticsearch,mongoosastic,Mongodb,Express,elasticsearch,Mongoosastic" /> elasticsearch,mongoosastic,Mongodb,Express,elasticsearch,Mongoosastic" />

Mongodb 数据未通过Mongoostic从elasticsearch索引中删除?

Mongodb 数据未通过Mongoostic从elasticsearch索引中删除?,mongodb,express,elasticsearch,mongoosastic,Mongodb,Express,elasticsearch,Mongoosastic,我在平均堆栈程序中设置了Mongoostic。除了我从mongodb中删除文档外,其他一切都正常工作,它不会在elasticsearch索引中删除。因此,每次我执行包含删除项目的搜索时,删除的项目都会返回,但在水合时为null。Mongoostic是否处理从ES索引中删除?我必须对索引刷新进行编程吗 var mongoose = require('mongoose'); var mongoosastic = require("mongoosastic"); var Schema = mongoo

我在平均堆栈程序中设置了Mongoostic。除了我从mongodb中删除文档外,其他一切都正常工作,它不会在elasticsearch索引中删除。因此,每次我执行包含删除项目的搜索时,删除的项目都会返回,但在水合时为null。Mongoostic是否处理从ES索引中删除?我必须对索引刷新进行编程吗

var mongoose = require('mongoose');
var mongoosastic = require("mongoosastic");
var Schema = mongoose.Schema;

var quantumSchema = new mongoose.Schema({
    note: {
        type: String,
        require: true,
        es_indexed: true
   }        
});

quantumSchema.plugin(mongoosastic);

var Quantum = mongoose.model('Quantum', quantumSchema);

Quantum.createMapping(function(err, mapping){
  if(err){
    console.log('error creating mapping (you can safely ignore this)');
    console.log(err);
  }else{
    console.log('mapping created!');
    console.log(mapping);
  }
});

我通过改变删除数据的方式解决了这个问题

我使用的是:

  Quantum.findByIdAndRemove(quantumid)
我把它改成:

  Quantum.findById(quantumid, function(err, quantum) {
      quantum.remove(function(err, quantum) {
         if (err) {
            console.log(err);

            return;
         }                
       });
   });

我没有研究这项工作的原因,但它解决了问题,我继续前进。

我不知道您使用的Mongoostic版本是什么,但我使用的是mongoosastic@3.6.0每当我使用
Model.findbyiandremove
Model.remove
删除索引文档时,它就会被删除。因此,请尝试交叉检查您删除文档的方式。

自从您发布后,您在这方面有过好运吗?我也有同样的问题。