通过水线将新文档添加到字段类型 Json
Add new Document into field type Json through Waterline
我正在尝试添加一个新文档,或者您可以为现有的 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);}} );
它取代了 numbers: {"@type":"d","key2":"example2"}
的值
但我想在现有的嵌入式或 json 文档中添加新的键值对,如果我的方法有误,请告诉我如何使用水线和 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);
});
});
如果这不起作用,请告诉我。
我正在尝试添加一个新文档,或者您可以为现有的 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);}} );
它取代了 numbers: {"@type":"d","key2":"example2"}
的值
但我想在现有的嵌入式或 json 文档中添加新的键值对,如果我的方法有误,请告诉我如何使用水线和 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);
});
});
如果这不起作用,请告诉我。