【发布时间】:2019-03-20 06:36:18
【问题描述】:
我没有收到任何错误或故障,但使用下面的架构,我似乎无法更新 fact1.nested1。
如果不使用嵌套的 Json 它可以工作,所以我设法通过使用更新nested1
$set: {'nested1': req.body.newNested1}
但无论我尝试按照以下方式更新它都不会改变任何东西。我做了一些研究并尝试了大多数解决方案,猫鼬有什么变化吗? 是否有其他方法可以在不更改 Json 中的所有其他数据的情况下更新嵌套的 Json。
var mongooseSchema = new Schema ({
fact1: {
type: JSON,
minlength: 1,
maxlength: 300,
required: true,
default: "emptyType"
}})
var setObj = {
$set: {'fact1.nested1' : req.body.newNested1}
}
User.FactCheck.findByIdAndUpdate(id,{
setObj}
, {
upsert: true,
'new': true
}).exec(function(err, doc) {
if (err) return res.send(500, {
error: err
});
console.log (doc)
return res.send(doc);
});
【问题讨论】:
-
我认为
type: JSON无效。fact1是 JSON 格式的字符串还是对象? -
嗨,在我的模式中它被称为 type: JSON 我认为它是一个有效的类型,我现在确实意识到根据添加的附件它提到了对象。所以 coinFactTransparent 是 fact1 而 coinbooltransparent 是 nested1。