在n1ql中创建对象

时间:2019-11-05 03:59:21

标签: couchbase n1ql

我有一些嵌套查询,它们返回一个对象数组,每个对象都有5个属性:id,value1,value2,attr1,attr2 数组中可能有多个针对特定ID的文档(obj)。

表示我有多个id,并且每个id分别为attr1和attr2(每个attr1,attr2组合是我当前拥有的数组中的一个对象)。

我想创建一个看起来像这样的对象:

    id: {
          attr1: {
                  attr2: {value1, value2}
               }
        }
}

有什么办法吗? 试图搜索各种对象/数组函数,但找不到任何可以帮助我的东西。

1 个答案:

答案 0 :(得分:1)

这很简单,您只需要使用数组即可。这是一个更完整的示例:

INSERT INTO `test` ( KEY, VALUE ) VALUES ( "1", {
  "type": "users",
  "name": "First User",
  "username": "user1",
  "address": {
    "streetName": "Wayside Lane", 
      "houseNumber": 3104, 
        "zipcode": 94538, 
        "city": "Fremont", 
        "state": "CA", 
        "country": "US", 
        "entrances": [{"name" : "main"}] },
  "preferences": [
    {"name": "lang", "value": "en"},
    {"name": "notification", "value":"emailOnly"},
    {"name":"timezone","value": "GMT+2"}],
  "permissions": {
    "groups":["MARKETING"], 
    "roles": ["ADMIN", "PREMIUM_USER"]}
});

请注意,尽管建议最大深度为2或5个实体,但您可以根据需要设置任意数量的嵌套实体。