Couchbase - SELECT 对象数组中的字段子集
Couchbase - SELECT a subset of fields from array of objects
我正在使用 travel-sample
数据集,运行 以下查询:
SELECT id, schedule FROM `travel-sample`WHERE type = "route" LIMIT 1;
它正在 returning,结果如下:
[
{
"id": 10000,
"schedule": [
{
"day": 0,
"flight": "AF198",
"utc": "10:13:00"
},
{
"day": 0,
"flight": "AF547",
"utc": "19:14:00"
},
...
]
}
]
但是,我不想 return schedule.$.day
字段;即我希望我的结果是:
[
{
"id": 10000,
"schedule": [
{
"flight": "AF198",
"utc": "10:13:00"
},
{
"flight": "AF547",
"utc": "19:14:00"
},
...
]
}
]
如何才能 SELECT
对象数组中的对象字段的子集?
我已经尝试 UNNEST
但我不想为每个 schedule
元素单独记录 - 我希望 schedule
元素保持嵌套在文档中。
我也试过使用OBJECT_REMOVE
SELECT id, ARRAY OBJECT_REMOVE(x, 'day') FOR x in schedule END AS schedule FROM `travel-sample` WHERE type = "route" LIMIT 1;
但我想将字段列入白名单而不是黑名单。
您上次尝试接近成功。除了使用 OBJECT_REMOVE
,您可以简单地构造您想要返回的对象。
SELECT id, ARRAY {"flight": x.flight, "utc": x.utc} FOR x in schedule END AS schedule FROM `travel-sample` WHERE type = "route" LIMIT 1;
您将得到以下结果:
[
{
"id": 10000,
"schedule": [
{
"flight": "AF198",
"utc": "10:13:00"
},
{
"flight": "AF547",
"utc": "19:14:00"
},
...
]
}
]
我正在使用 travel-sample
数据集,运行 以下查询:
SELECT id, schedule FROM `travel-sample`WHERE type = "route" LIMIT 1;
它正在 returning,结果如下:
[
{
"id": 10000,
"schedule": [
{
"day": 0,
"flight": "AF198",
"utc": "10:13:00"
},
{
"day": 0,
"flight": "AF547",
"utc": "19:14:00"
},
...
]
}
]
但是,我不想 return schedule.$.day
字段;即我希望我的结果是:
[
{
"id": 10000,
"schedule": [
{
"flight": "AF198",
"utc": "10:13:00"
},
{
"flight": "AF547",
"utc": "19:14:00"
},
...
]
}
]
如何才能 SELECT
对象数组中的对象字段的子集?
我已经尝试 UNNEST
但我不想为每个 schedule
元素单独记录 - 我希望 schedule
元素保持嵌套在文档中。
我也试过使用OBJECT_REMOVE
SELECT id, ARRAY OBJECT_REMOVE(x, 'day') FOR x in schedule END AS schedule FROM `travel-sample` WHERE type = "route" LIMIT 1;
但我想将字段列入白名单而不是黑名单。
您上次尝试接近成功。除了使用 OBJECT_REMOVE
,您可以简单地构造您想要返回的对象。
SELECT id, ARRAY {"flight": x.flight, "utc": x.utc} FOR x in schedule END AS schedule FROM `travel-sample` WHERE type = "route" LIMIT 1;
您将得到以下结果:
[
{
"id": 10000,
"schedule": [
{
"flight": "AF198",
"utc": "10:13:00"
},
{
"flight": "AF547",
"utc": "19:14:00"
},
...
]
}
]