node.js - 通过 Waterline 将新 Document 添加到 Json 字段类型中

标签 node.js sails.js waterline sails-orientdb

我正在尝试添加一个新文档,或者您可以向现有的 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);}} ); 

它替换了数字的值:{"@type":"d","key2":"example2"} 但我想在现有的嵌入或 json 文档中添加新的键值对,如果我的方法是错误的,那么告诉我如何使用 Waterline 和 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);
  });
});

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

关于node.js - 通过 Waterline 将新 Document 添加到 Json 字段类型中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29892729/

相关文章:

node.js - 在 Node.js 中使用 MongoDB 使用电子邮件或用户名登录

node.js - mongodb 中带有 _id 字段的不同集合

node.js - 限制在 Sails.js 模型中设置字段

node.js - 使用 Mocha/Sinon 测试 NodeJ - Sails

javascript - 类型框架关系

python - 在 VS Code 中使用 Python 和 Node 进程调试应用程序

node.js - AMQPlib Nodejs 消费者任务并发

javascript - Sails.js 简单的私有(private)消息传递(发布/订阅和模型)

node.js - async.series 功能未完成

javascript - 如何创建具有重复键的 JSON 对象