Я борюсь с update-for
N1QL-запросом
мои документы выглядят так:
{
"invalidityReasons": {
"AU": [
"ANCESTOR_DEACTIVATED_OR_INVALID"
],
"BE": [
"ANCESTOR_DEACTIVATED_OR_INVALID"
],
"BG": []
}
"metadata": {
"configurations": {
"AU": {
"enabled": true,
},
"BE": {
"enabled": false,
},
"BG": {
"enabled": true,
}
}
}
}
что я пытаюсь сделать:
для всех стран, которые имеют недействительность Reason "ANCESTOR_DEACTIVATED_OR_INVALID" и активированы (то есть "enabled": true в metadata.configurations) => деактивировать эту страну (то есть "enabled": false)
в приведенном выше примере AU (Autralia) должен быть деактивирован
где я сейчас нахожусь
это значит в моей голове:
- иди думал все страны
- найти людей с недействительностьюReasons = ANCESTOR_DEACTIVATED_OR_INVALID + enable = true
- обновление активации
так что update-for
выглядел довольно неплохо, но мне не удалось заставить его работать:
update `data` t
SET t.metadata.configurations.[country].enabled = false
FOR country IN OBJECT_NAMES(t.metadata.configurations)
when t.metadata.configurations.[country].enabled = true
and array_contains(t.invalidityReasons.[country], 'ANCESTOR_DEACTIVATED_OR_INVALID') end;
Couchbase объявляет о мутациях, но мои страны все еще активированы
Есть ли у вас какие-либо идеи:
- , если это возможно даже с N1QL?
- что я делаю не так? :)
кстати я использую Couchbase EE 5.1.1
спасибо,
веселит,
Jules