可以在N1ql中链接结果吗?

时间:2016-08-16 08:10:07

标签: couchbase n1ql

我目前正在尝试为我正在进行的项目做一些复杂的N1QL,理论上我可以在多个N1QL调用中完成所有这些处理,并且每次都可以解析结果,但是如果我可能希望将其包含在一个电话中。

我想做的是:

  • 过滤所有包含" dataSync.test.id"的文档超过1个字段的字段
  • 回读该列表中的所有其他ID
  • 使用该列表获取包含这些ID的其他文档
  • 获取" dataSync.test._channels"这些文档的字段(可选择按docType过滤可能有助于解析)

这可能会返回" dataSync.test._channels"

的列表

这可能在N1QL中吗?它似乎可能是,但我无法正确使用语法。

我的数据结构看起来有点像

{
  "dataSync": {
    "test": {
      "_channels": [
        "RP"
      ],
      "id": [
        "dataSync_user_1015",
        "dataSync_user_1010",
        "dataSync_user_1005"
      ],
      "_lastUpdatedBy": "TEST"
    }
  },
     ...
}


{
  "dataSync": {
    "test": {
      "_channels": [
        "RSD"
      ],
      "id": [
        "dataSync_user_1010"
      ],
      "_lastUpdatedBy": "TEST"
    }
  },
...
}

1 个答案:

答案 0 :(得分:0)

是。我想你可以做到这一切。

带有过滤的初始ID集可以作为子查询检索,然后您可以通过连接获取后续文档。

SELECT fulldoc FROM(选择meta()。id作为来自doc的dockey,其中a = 1)作为mydoc INNER JOIN doc fulldoc ON KEYS mydoc.dockey;

可以在这里完成优化。首先尝试排序,以确保您完成工作。