我正在尝试添加一个新文档,或者您可以向现有的 json 类型字段添加一个新的键值对,但它正在替换旧的键值对,例如
在我的嵌入字段为 {"@type":"d","key1":"example1"}
之前
当我执行更新调用时
WL_MODELS.numbers.update({id: req.body.SID},{numbers: {"key2":"example2"}},function(err,model){ if(err) console.log(err); else { console.log(model);}} );
它替换了数字的值:{"@type":"d","key2":"example2"}
但我想在现有的嵌入或 json 文档中添加新的键值对,如果我的方法是错误的,那么告诉我如何使用 Waterline 和 sails-orientdb 来做到这一点?
最佳答案
xeeB,在水线 json
中是一种数据类型,就像 integer
或 string
一样,并且与您无法对其执行嵌套操作的数据类型类似。换句话说,执行 .update(criteria, { attribute: json })
将替换您正在经历的整个 json
对象。
要实现您想要的效果,您首先需要获取 json,然后再进行更改,例如:
WL_MODELS.numbers.findOne({id: req.body.SID}, function(err, model){
model.numbers["key2"] = "example2";
model.save(function(err){
console.log("saved:", model);
});
});
如果这不起作用,请告诉我。
关于node.js - 通过 Waterline 将新 Document 添加到 Json 字段类型中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29892729/