1

mogoosastic と mongodb を同期しない理由を誰か教えてください。mongoDB からレコードを削除すると、サーバーが再起動されるまでレコードが引き続き表示されます。this is me 検索機能

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

そして、これは私のスキーマ宣言です

isDeleted: {type: Boolean, required: true, default: false, es_indexed: true}

このコードの何が問題なのですか...

4

1 に答える 1

0

このコード行を追加しましたが、すべて問題ありませんでした

.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)
    })
于 2016-12-14T13:11:36.070 に答える