在嵌套数组中查找 children 个未知 parents (Couchbase)

Finding among children of unknown parents in nested arrays (Couchbase)

我一直在使用 MongoDB 并且喜欢它,但最近开始使用 Couchbase。我在按我喜欢的方式检索文档时遇到了一些问题。

假设我有这样一个文档:

{
   "data": [
      {
         "target": "value1"
      },
      {
         "target": "value2"
      },
      {
         "target": "value3"
      }
   ]
}

在 MongoDB 中,可以按照 find({"data.target": value2}) 的方式做一些事情(而不是必须指定 data.1.target)。但是我似乎无法在 Couchbase 中找到执行此操作的方法。

有没有一种方法,无论是使用 N1QL 还是视图,都可以根据指定的 child 键查找所有文档,而无需指定所有中间键?如果我指定它是 data.1.target,我可以毫无问题地获取文档,但如果我不知道所需的 child 数组的键,那对我没有任何好处。

换句话说,对于 N1QL,我希望能够执行与使用 data[*].target 相同的操作,但在 WHERE 子句之后。

对不起,如果我不清楚。我环顾四周但我不完全知道如何表达我的问题或我应该搜索哪些特定关键字。我不知道要搜索什么,所以我终于在这里问了。

提前感谢您的宝贵时间。

您可以使用 any with with with with 子句根据指定的子键查找文档。在您的情况下,n1ql 查询将是: select * 默认情况下,数据中的任何 t 满足 t.target="value2" end;

以上查询为您提供了 data[*].target 等于 "value2" 的所有文档 Within 非常强大,因为它还会在对象内搜索嵌套数组。

在您的情况下,您还可以使用任何 with in 子句,类似于我们在教程 link 中使用的内容: http://query.pub.couchbase.com/tutorial/#12 您的具体查询将是: select * 来自默认值,其中数据中的任何 t 满足 t.target="value2" end; 但是这个查询只会在数组中的 1 级中搜索。