- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
Mongoose findByIdAndUpdate 没有在回调中返回正确的模型,这是我以前从未见过的问题。
代码如下:
var id = args._id;
var updateObj = {updatedDate: Date.now()};
_.extend(updateObj, args);
Model.findByIdAndUpdate(id, updateObj, function(err, model) {
if (err) {
logger.error(modelString +':edit' + modelString +' - ' + err.message);
self.emit('item:failure', 'Failed to edit ' + modelString);
return;
}
self.emit('item:success', model);
});
db中的原始文档是这样的:
{
_id: 1234
descriptors: Array[2],
name: 'Test Name 1'
}
进入的updateObj如下所示:
{
_id: 1234
descriptors: Array[2],
name: 'Test Name 2'
}
回调返回的模型与原始模型相同,而不是更新的Obj。如果我查询数据库,它已正确更新。它只是没有从数据库中返回。
这感觉像是一个“愚蠢的用户”错误,但我看不到。任何想法都非常感谢。
最佳答案
在 Mongoose 4.0 中,findByIdAndUpdate
(和 findOneAndUpdate
)的 new
选项的默认值已更改为 false
,这意味着返回旧文档(参见 release notes 的 #2262)。因此,您需要在应用更新后将选项显式设置为 true
以获取新版本的文档:
Model.findByIdAndUpdate(id, updateObj, {new: true}, function(err, model) {...
关于node.js - Mongoose findByIdAndUpdate 没有返回正确的模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30419575/
findByIdAndUpdate() 成功更新文档,但返回我不明白的错误。 这是架构: const userSchema = mongoose.Schema({ phone: String,
这个问题在这里已经有了答案: Mongoose: findOneAndUpdate doesn't return updated document (16 个答案) 关闭 5 年前。 所以我有这个
似乎无法理解为什么 findByIdAndUpdate 没有更新数据。我将其更改为 findByIdAndRemove 以查看是否可以发现错误,但是当我更改它时,它确实被删除了,因此我无法找到问题所在
这是我的代码: app.post('/api/scheduleObject_Update', function(req, res) { var parameter = req.para
我正在尝试找到一种一致的方法来验证我保存到数组中的一些 id。 架构: var MySchema = new Schema({ name: { type: String }, otherIds
这是我的架构: var postSchema = new mongoose.Schema({ _id: mongoose.Schema.ObjectId, title: String,
我在下面有一个相当直接的方法来更新基于其 ObjectId 的文档。它不会返回错误,但无法对文档进行所需的更新。我认为它失败了,因为根据我的研究,findByIdAndUpdate() 仅采用纯 Ja
我有一个模式并指定登录是唯一的是真的。当我使用 findByIdAndUpdate 并传递查询 $set 来更新用户对象时,它确实不在登录被复制时抛出错误。有谁知道为什么以及如何更新对象并强制执行架构
我正在尝试使用 mongoose 的 findByIdAndUpdate 方法。当我更新具有 _id 字段集的现有文档时,效果很好。但是,插入一个新文档,使用 upsert: true 插入一个没有生
我是 Mongodb 新手,我正在使用 findByIdAndUpdate 它将更新文档但返回旧文档,这是我的功能, exports.createInner = function (req, res,
因此,当我执行 findByIdAndUpdate 时,它不会按预期执行我的 promise 并进入我的捕获。我使用 res.json(req.user.id) 和 res.json(profil
我的想法很简单,就是从req.body中获取更新值,但是它不能正常工作,mongodb中的数据永远不会改变。 已尝试过 {$set: 电子邮件、密码} const id = { _id: re
我通过创建 API 并在 Angular 2 服务中调用它们,根据 Nodejs 中的 id 更新产品。 routes/products.js router.post('/:id', function
我有一个名为 Message 的 Mongoose 模型,当创建该模型时,我想将消息 Id 保存到另一个名为 User 的模型中的数组中。但是,当调用 findByIdAndUpdate 方法时,它不
findByIdAndUpdate 方法应该更新或插入数据库中的对象,但它不执行任何操作。它也不会抛出错误消息或其他内容。 我也尝试过使用原始的 ObjectId 作为 _id 字段,但也不起作用。
所以我只想更新传递的对象的值。 Event.findByIdAndUpdate(req.body.id, { $set: {
开发 Node.js API。我有显示 field 的 mongo 数据。它包含一个地址,例如...... "address": { "street": "123 main s
我试图在用户点击某个按钮时增加赞成票,并将他的 stormpath 用户 ID (req.user.href) 存储在一个数组中。 尝试 1: if (newUpvoters = found_post
我想知道是否有最好的方法来做到这一点: /** * Article Schema */ var PostSchema = new Schema({ title: { typ
我写了一个更新查询,它将通过 _id 找到记录并更新。这段代码完全可以正常工作,直到我在该集合中添加一条新记录。如果添加一条记录并进行查询,它将转到成功部分但返回 null 而不是数据。但是当我重新启
我是一名优秀的程序员,十分优秀!