node.js - 从mongoDB删除记录时,elastics不会与其同步

标签 node.js mongodb elasticsearch mongoosastic

有人请告诉我为什么不同步我的mogoosastic和mongodb?
当我从mongoDB删除记录时,仍然可以看到记录,直到重新启动服务器为止。这是我的搜索功能

exports.search = function (req, res) {
  if (!req.query.q) return res.status(400).send('No Query Provided')
  log.error(req.query.q)

  var query = {
    query_string: {
      filtered: {
        query: {
          multi_match: {query: req.query.q,}
        },
        filter: {term: {isDeleted: false}
        }
      }
    }
  }

  User.search(query, (err, results) => {
    if (err) return handleError1(res, err)
    var ret = _.map(results.hits.hits, result => ({
      userID: result._id,
      _score: result._score,
      name: result._source.name,
      loc: result._source.loc,
      info: result._source.info,
      images: result._source.images,
    }))
    return res.send(ret)
  })
}

这是我的Schema声明
isDeleted: {type: Boolean, required: true, default: false, es_indexed: true}

这段代码有什么问题...

最佳答案

我添加了这一行代码,一切正常

.then(groups => {
      return User.findById(uid).exec()
    })
    .then(user => {
      let email = user.credentials.loginEmail + '_' + moment().format('YYYYMMDDEHHmmss')
      if(app.get('env') === 'localtest') {
        email = user.credentials.loginEmail + '_deleted'
      }
      user.credentials.loginEmail = email;
      user.isDeleted = true;
      user.updated.at = new Date();
      user.save()
        .then(user_ =>{
          user.sendInfoUpdate()
          return res.status(204).send()
        })
        .catch(err => {
          return handleError(res, err)
        })
    })
    .catch(err => {
      return handleError(res, err)
    })

关于node.js - 从mongoDB删除记录时,elastics不会与其同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40975866/

相关文章:

python - 如何将 MongoDB "Row(oid=u' 0123456789abcdef0123456 7')"转换为 "0123456789abcdef01234567"?

elasticsearch - 如何在elasticsearch中将bucket键排序为整数?

apache - 坚果索引元数据未索引

javascript - 满足条件时进行网页抓取

node.js - 如何从我的包用户的导入语句中删除输出文件夹?

javascript - 需要使用 Passport.js/Node.js 对目录(一页除外)进行身份验证?

mongodb - 在 ubuntu 上安装 mongo 10 gen 这是客户端、服务器还是两者?

javascript - 如何在 Waterline ORM 中设置数据库连接字符串

django - 使用 Django(Djongo) 从 MongoDB 现有数据库中提取数据

c# - ElasticSearch Nest。在除另一个时间范围内的时间范围内获取聚合结果