В нашей базе couchbase db есть ведро с относительно большими объектами. Внутри этих объектов есть другие объекты, скажем, люди. Это должен быть массив, однако по какой-то причине нам пришлось создать его как объект объектов, и вот как он выглядит:
{
"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"
}
}
}
У него также есть подобъекты с похожей структурой.
Я могу делать запросы к этому документу следующим образом:
SELECT c.*
FROM companies c
WHERE ANY v IN OBJECT_VALUES(c.people) SATISFIES v.peopleid = "22222-GUID-22222" END
LIMIT 100
OFFSET 40000;
У меня есть ведро, в котором есть 50000 таких документов.
Вышеупомянутый запрос выполняется отлично и дает мне правильный ответ, но мне нужно ждать ответа около 25 секунд.
Есть ли возможность создать правильные индексы для этой структуры? Или любое решение, которое могло бы ускорить запрос?