Как обновить схему в couchbase
Я хочу обновить свои документы следующим образом
user1:{
emails:['email1', 'email2']
}
требуется
user1:{
emails:[{email:'email1', is_active:1}, {email:'email2', is_active:1}]
}
Мы можем сделать это, создав функцию с циклами в программе, но я хочу сделать это, написав запрос
1 ответ
(Ваши образцы документов не совсем соответствуют JSON, поэтому я сделал несколько предположений)
Я создал документ (с ключом user1 в контейнере с именем stackru) следующим образом:
{
"emails": ["email1", "email2"]
}
Затем я побежал UPDATE
с использованием ARRAY
синтаксис ( задокументированный здесь):
UPDATE `stackru`
SET emails = ARRAY {"email": v, "is_active": 1} FOR v IN emails END;
Итоговый документ:
{
"emails": [
{
"email": "email1",
"is_active": 1
},
{
"email": "email2",
"is_active": 1
}
]
}
Будьте осторожны, если вы хотите запустить это несколько раз. Возможно, вы захотите временно поместить результаты в поле, например "emails_new", вместо того, чтобы перезаписывать "электронные письма", пока они не будут работать так, как вы хотите.