通过水线将新文档添加到字段typesJson中

我想添加一个新的文档,或者你可以说一个新的键值对现有的JSONtypes字段,但它是取代旧的键值对,例如在我的embedded字段是{"@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"}的值numbers: {"@type":"d","key2":"example2"}但是我想在现有的embedded式或json文档中添加新的键值对,如果我的方法是错误的,我怎样才能做到这一点使用waterline和sails-orientdb?

xeeB,在水线json是一个数据types就像integerstring和类似的那些你不能对它执行嵌套操作。 换句话说,执行.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); }); }); 

让我知道如果这不起作用。