当从mongoDB删除记录时,弹性体不与其同步
问题描述:
有人请告诉我为什么不同步我的mogoosastic和mongodb? 当我从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)
})
}
而这一个是我的架构声明
isDeleted: {type: Boolean, required: true, default: false, es_indexed: true}
什么是错的这个代码...
答
我加入这行代码,一切都OK
.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)
})
如何删除文档?请提供删除代码 – Paradise228