【问题标题】:How to retrieve a subset of fields from array of objects using the Couchbase sub-document API?如何使用 Couchbase 子文档 API 从对象数组中检索字段子集?
【发布时间】:2018-08-28 09:11:15
【问题描述】:

我正在尝试编写一个查找,它从文档中返回一个数组并跳过一些字段:

 {
    "id": 10000,
    "schedule": [
      {
        "day": 0,
        "flight": "AF198",
        "utc": "10:13:00"
      },
      {
        "day": 0,
        "flight": "AF547",
        "utc": "19:14:00"
      },
      ...
    ]
  }

我想获取所有计划项目,但只获取航班属性。我想得到这样的东西:

[
   { 
       "flight: "AF198"
   },
   { 
       "flight: "AF547"
   },
   ...
]

bucket.lookupIn(key).get("schedule.flight") 不起作用。我试过"schedule[].flight""schedule.$.flight" 似乎我总是需要知道索引。

我看到 N1QL 可以做到这一点。

Couchbase - SELECT a subset of fields from array of objects

你们知道如何使用 Subdocument API 做到这一点吗?对不起,如果这是一个微不足道的问题。我只是在

上找不到示例

https://developer.couchbase.com/documentation/server/current/sdk/subdocument-operations.html

【问题讨论】:

    标签: node.js couchbase


    【解决方案1】:

    Couchbase 子文档需要完整路径,它不支持扩展。在这种情况下,它需要知道数组的索引。还有一些其他选择:

    1. 如果每个路径都是已知的,那么您可以链接所有子文档获取。一次总共可以获得16条路径: bucket.lookupIn(key).get("schedule[0].flight").get(schedule[1].flight")

    2. 在应用端获取父对象和过滤器: bucket.lookupIn(key).get("schedule")

    3. 如问题中所述,使用 N1QL。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-30
      • 1970-01-01
      • 1970-01-01
      • 2021-01-07
      • 1970-01-01
      • 2016-06-13
      • 2011-08-31
      • 2018-10-12
      相关资源
      最近更新 更多