如何在couchbase中更新架构

时间:2018-04-23 12:54:57

标签: couchbase n1ql

我想按照以下更新我的文件

    user1:{
emails:['email1', 'email2']
}

需要

    user1:{
emails:[{email:'email1', is_active:1}, {email:'email2', is_active:1}]
}

我们可以在程序中使用循环创建函数,但我想通过编写查询

来完成此操作

1 个答案:

答案 0 :(得分:0)

(您的示例文档不是非常有效的JSON,所以我做了一些假设)

我创建了一个文档(在 stackoverflow 的存储桶中包含 user1 键),如下所示:

{
   "emails": ["email1", "email2"]
}

然后,我使用UPDATE语法(documented here)运行了ARRAY

UPDATE `stackoverflow`
SET emails = ARRAY {"email": v, "is_active": 1} FOR v IN emails END;

结果文件是:

{
  "emails": [
    {
      "email": "email1",
      "is_active": 1
    },
    {
      "email": "email2",
      "is_active": 1
    }
  ]
}

如果要多次运行,请务必小心。您可能希望暂时将结果放在“emails_new”等字段中,而不是覆盖“电子邮件”,直到它按您希望的方式工作。