Mongoose不发送更新后的结果
Mongoose does not send the updated result
我正在尝试向数组中添加一个项,并获取更新后的模型。
我这样提出我的请求:
addCarToDriver(CarToAdd) {
const self = this;
request
.put('api/drivers/' + this.state.race._id)
.send({
car: CarToAdd})
.end(function(err, res) {
console.log(res.body);
self.setState({race: res.body});
});
}
点击这里的服务器:
MyRace.findByIdAndUpdate(
req.params.myrace_id,
{ $push: { 'cars': req.body.car } },
function(er, model) {
if (er) {
console.log(err);
return res.send(err);
}
console.log(model);
return res.json(model);
});
现在,在请求回调中,我希望记录新的更新模型,即使用新的Car
。事实并非如此。将记录"旧"版本。然而,如果我刷新页面,模型会随着新车更新。
当然,我需要直接在回调中设置State。关于如何做到这一点,有什么建议吗?
Mongoose 4已经更改了.findAndUpdate
行为,默认情况下返回旧文档,如果您想要更新的新文档,则需要传递{new:true}
,因为这是MongoDB 中的实际行为
您可以对查询进行修补,将options.new=true
设置为具有旧的返回方式:
var __setOptions = mongoose.Query.prototype.setOptions;
mongoose.Query.prototype.setOptions = function(options, overwrite) {
__setOptions.apply(this, arguments);
this.options['new'] = true;
return this;
};
相关文章:
- 为什么我的文本框没有用查询结果更新
- Angular JS根据搜索结果和点击事件更新DOM元素
- GoogleMapsForRails-只有在搜索结果发生变化时才通过ajax更新标记
- Angular$scope在更新时未将结果传递给父控制器
- ReactJS-这个状态中的数组在删除时被正确更新,但结果是't,直到以后的状态发生变化
- 使用动态变量名更新JSON中的结果
- Javascript错误,根据其他复选框的结果更新复选框/按钮
- 使用SimpleHTTPServer响应的结果更新javascript变量的值
- 平均堆栈:如何将函数的结果更新到数据库
- 如何在 mongodb 中获取更新查询写入结果
- 结果是检查多个复选框值并更新表数据
- 尝试从 jQuery 帖子结果更新选择列表选项
- Javascript:在输入更新后更新结果值
- 使用 AJAX 回调更新挖空可观察数组会生成随机排序的结果
- 从 JSON 结果更新 HTML 内容
- 表单与jquery结合PHP发送结果*更新完整的代码*
- 使用Python脚本的结果更新Javascript
- 从AJAX请求结果更新引导警报文本
- 尝试在jQuery中使用数学结果更新跨度
- 从ajax调用结果更新qtip内容