gpt4 book ai didi

sql - 使用 couchbase N1QL 仅获取子文档

转载 作者:搜寻专家 更新时间:2023-10-30 23:33:20 25 4
gpt4 key购买 nike

在我们的 couchbase 数据库中,我们有一个包含相对较大对象的桶。这些对象内部还有其他对象,比方说人。这应该是一个数组,但是由于某些原因我们不得不将它创建为对象的对象,这就是它的样子:

{
"companyName": "company name",
"companyid": "11111-GUID-11111",
"people": {
"22222-GUID-22222": {
"peopleid": "22222-GUID-22222",
"name": "name1"
},
"33333-GUID-33333": {
"peopleid": "33333-GUID-33333",
"name": "name2"
},
"44444-GUID-44444": {
"peopleid": "44444-GUID-44444",
"name": "name3"
}
}
}

使用这个结构,我可以创建一个查询来使用如下查询获取“people”对象:

SELECT c.*
FROM companies c
WHERE ANY v IN OBJECT_VALUES(c.people) SATISFIES v.peopleid = "22222-GUID-22222" END;

这个结构的问题是数据库响应整个公司对象,但是我只需要满足条件的“people”对象,我不需要除 "22222- GUID-22222"

有什么方法可以使用 couchbase 来实现吗?

最佳答案

SELECT FIRST v FOR v IN OBJECT_VALUES(c.people) WHEN v.peopleid = "22222-GUID-22222" END AS people
FROM companies c
WHERE ANY v IN OBJECT_VALUES(c.people) SATISFIES v.peopleid = "22222-GUID-22222" END;

关于sql - 使用 couchbase N1QL 仅获取子文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46032150/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com