我正在尝试添加新文档,或者您可以将新的键值对称为现有的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文档中添加新的键值对,如果我的方法错了,那么告诉我如何使用waterline和sails-orientdb?
答案 0 :(得分:1)
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);
});
});
如果这不起作用,请告诉我。