通过水线将新文档添加到字段类型 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 是一种数据类型,就像 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);
  });
});

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