1

我正在尝试添加一个新文档,或者您可以对现有的 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 来做到这一点?

4

1 回答 1

1

xeeB,在水线json中是一种数据类型,就像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);
  });
});

如果这不起作用,请告诉我。

于 2015-04-27T14:29:13.507 回答