我正在尝试编写一个从文档返回数组并跳过某些字段的查找:
{
"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
答案 0 :(得分:2)
Couchbase子文档需要完整路径,它不支持扩展。在这种情况下,它需要知道数组的索引。还有其他一些选择:
如果每个路径都已知,则可以链接所有子文档获取。一次总共可以获取16条路径:
bucket.lookupIn(key).get("schedule[0].flight").get(schedule[1].flight")
获取父对象并在应用程序端进行过滤:
bucket.lookupIn(key).get("schedule")
如问题中所述,使用N1QL。