Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 选择列名并在Couchbase上查询“LIKE”_Sql_Couchbase_N1ql - Fatal编程技术网

Sql 选择列名并在Couchbase上查询“LIKE”

Sql 选择列名并在Couchbase上查询“LIKE”,sql,couchbase,n1ql,Sql,Couchbase,N1ql,我想从一个bucket中获取所有列名 我发现了一个查询: SELECT ARRAY_DISTINCT(ARRAY_AGG(v)) AS column FROM mybucket b UNNEST object_names(b) AS v 它的列名数组,但我需要像SQL命令。是这样的: SELECT column FROM mybucket WHERE column LIKE '%test%' 有办法做到这一点吗?这是一个棘手的问题,具体取决于您希望生成的结构是什么。免责声明,也许有一种更简洁

我想从一个bucket中获取所有列名

我发现了一个查询:

SELECT ARRAY_DISTINCT(ARRAY_AGG(v)) AS column
FROM mybucket b UNNEST object_names(b) AS v
它的列名数组,但我需要像SQL命令。是这样的:

SELECT column
FROM mybucket
WHERE column LIKE '%test%'

有办法做到这一点吗?

这是一个棘手的问题,具体取决于您希望生成的结构是什么。免责声明,也许有一种更简洁的方法可以做到这一点,但我还没有找到,也许还有另一种方法不涉及对象名称

但不管怎样,对我来说,关键是

例如:

SELECT ARRAY a FOR a IN ARRAY_DISTINCT(ARRAY_AGG(allFieldNames))
       WHEN a LIKE '%test%' END AS filteredFieldNames
FROM mybucket b UNNEST object_names(b) AS allFieldNames
将返回如下结果

[
  {
    "filteredFieldNames": [
      "testField1",
      "anotherTestField"
    ]
  }
]
如果需要不同的格式,可以使用数组运算符表达式。例如:

SELECT ARRAY { "fieldName" : a } FOR a IN 
       ARRAY_DISTINCT(ARRAY_AGG(allFieldNames))
       WHEN a LIKE '%test%' END AS filteredFieldNames
FROM mybucket b UNNEST object_names(b) AS allFieldNames
这将返回:

[
  {
    "filteredFieldNames": [
      {
        "fieldName": "testField1"
      },
      {
        "fieldName": "anotherTestField"
      }
    ]
  }
]

这是一个棘手的问题,具体取决于您希望生成的结构是什么。免责声明,也许有一种更简洁的方法可以做到这一点,但我还没有找到,也许还有另一种方法不涉及对象名称

但不管怎样,对我来说,关键是

例如:

SELECT ARRAY a FOR a IN ARRAY_DISTINCT(ARRAY_AGG(allFieldNames))
       WHEN a LIKE '%test%' END AS filteredFieldNames
FROM mybucket b UNNEST object_names(b) AS allFieldNames
将返回如下结果

[
  {
    "filteredFieldNames": [
      "testField1",
      "anotherTestField"
    ]
  }
]
如果需要不同的格式,可以使用数组运算符表达式。例如:

SELECT ARRAY { "fieldName" : a } FOR a IN 
       ARRAY_DISTINCT(ARRAY_AGG(allFieldNames))
       WHEN a LIKE '%test%' END AS filteredFieldNames
FROM mybucket b UNNEST object_names(b) AS allFieldNames
这将返回:

[
  {
    "filteredFieldNames": [
      {
        "fieldName": "testField1"
      },
      {
        "fieldName": "anotherTestField"
      }
    ]
  }
]

对象名称仅提供顶级字段名称,不包括嵌套字段


对象名称仅提供顶级字段名称,不包括嵌套字段