猫鼬findOne()调用未保存且输出无错误

PGT

我正在做一个简单的findOne()并在其中保存文档,但是由于某种原因,它无法正常工作。我已经输出了对象,并且控制台中的输出是正确的,但是在save()之后,我看了看我的mongodb并没有保存它。我不确定是否应该设置某种选项。这是我的代码:

var1 = "data1";
var2 = "data1field1";
Model.findOne({'_id':some_id}).exec(function(err, doc) {
    if (err) return console.error(err);
    (doc.data[var1][var2][0] += 1;
    console.log(doc.data.data1);
    doc.save(function (err) {
        if(err){console.log(err);}
        console.log('success');
    });
});

这是我的架构:

var modelSchema = new mongoose.Schema({
    'data':{
        'data1':{
            'data1field1':[{type: Number}],
            'data1field2':[{type: Number}]
        },
        'data2':{
            'data2field1':[{type: Number}],
            'data2field2':[{type: Number}]
        }
    }
});
var Model = mongoose.model('model', modelSchema);
module.exports.Model = Model;

假设我创建了此架构的实例,其中data.data1.data1field1是两个数字[0,0]的数组,输出为“ console.log(doc.data.data1);”。将会:

{
    data1field1:[1,0],
    data1field2:[0,0] }
success

但是保存不会发生。我是mongoose / mongodb的新手,所以我可能缺少一个简单的基本内容。

注意:我无法使用Model.update({},{$ inc {}}),因为我使用变量来选择要更改的数据对象,并且由于.update()中的文字,这是不可能的。

谢谢。

彼得·里昂

因此,当执行诸如的简单属性集时,猫鼬具有一些聪明才智,可以自动检测更改myModel.name = 'Steve'但是,当您访问深度嵌套的架构并在图形的深处更改属性时,顶级文档将无法自动检测到这一点。因此,您需要告诉猫鼬您做了什么更改。

doc.markModified('data.' + var1 + '.' + var2);

如果您得到正确的咒语,猫鼬将能够保存您的更改。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

猫鼬保存错误

来自分类Dev

事务中的猫鼬 findOne():未捕获的类型错误:无法读取未定义的属性“$elemMatch”

来自分类Dev

关于保存的猫鼬错误?

来自分类Dev

猫鼬预保存bcrypt未保存

来自分类Dev

了解猫鼬findOne()。remove()

来自分类Dev

猫鼬findOne与“要么或”查询

来自分类Dev

猫鼬查询FindOne与数组

来自分类Dev

猫鼬findOne()不是函数

来自分类Dev

了解猫鼬findOne()。remove()

来自分类Dev

猫鼬 - 在 Multer 中 FindOne()

来自分类Dev

猫鼬 findOne 不是函数

来自分类Dev

如何捕获“无错误:未调用 PDO 构造函数”

来自分类Dev

节点/猫鼬保存错误的复杂模式不会保存或更新

来自分类Dev

捕获崩溃子进程的“细分故障”消息:调用communication()后无错误且错误

来自分类Dev

模型未使用猫鼬保存到MongoDB

来自分类Dev

Node.js猫鼬静态函数未调用

来自分类Dev

猫鼬:未调用ID时,路径“ _id”处的CastError

来自分类Dev

在NodeJS cronjob中未调用猫鼬查询回调

来自分类Dev

Node.js猫鼬静态函数未调用

来自分类Dev

承诺的猫鼬/ mongodb保存不返回成功的ajax调用?

来自分类Dev

猫鼬保存功能不起作用。post('save') 没有被调用但没有错误

来自分类Dev

从猫鼬承诺的回调函数引发的错误未捕获

来自分类Dev

使用猫鼬挂钩重试保存重复的密钥错误

来自分类Dev

猫鼬模型保存错误E11000

来自分类Dev

猫鼬保存失败而没有错误

来自分类Dev

猫鼬不保存数据没有错误

来自分类Dev

猫鼬用多个参数搜索FindOne

来自分类Dev

猫鼬JS findOne总是返回null

来自分类Dev

猫鼬findOne未完成