我正在尝试更新文档中的一个特定字段。这是我的代码:
module.exports.editAndUpdate = function(playerVideo, callback) {
console.log(playerVideo.vidName);
var newVidId = toString(playerVideo.vidId);
myModel.findById(newVidId, function(err, doc) {
if(err) throw err;
doc.vidName = playerVideo.vidName;
doc.save(callback);
});
}
这里的playerVideo
是一个文档,vidName
和vidId
是它的字段。
而不是 doc.vidName = playerVideo.vidName
,如果我使用 doc.vidName = "Hey"
,那么它工作得很好。我使用了 typeof
方法并检查了 playerVideo.vidName
是否是一个 String
,是的,它是。
请帮我解决这个问题。感谢您的任何建议:)
最佳答案
对我来说,问题发生在我更新嵌套对象时,该对象的键值中有一个句号。
例如
"$set": {
"some.field": {
"validuser": "this works",
"invalid.user": "this breaks mongo"
}
}
MongoDB doesn't support keys with a dot ,并提供了这个神秘的错误:
cannot set property 'value' of null
解决方案 - 不要存储带有句号的 key !
关于javascript - 更新时, Mongoose 给我一个错误 : TypeError: Cannot set property 'vidName' of null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37846712/