2
次にcouchbaseのサンプルドキュメント(userdetails)を示します。 "会社" に基づいて jsonデータの配列内の複数のパラメータを更新するn1qlクエリ
{
"friends": [
{
"company": "microsoft",
"firstname": "criss",
"lastname": "angel"
},
{
"company": "google",
"firstname": "captain",
"lastname": "america"
}
]}
は、私は
update default use keys "userdetails" set a.firstname="xyz" for a in friends when a.company="microsoft" end returning friends
(単一のパラメータ(FIRSTNAME)を更新する)、 "ファーストネーム" と "姓"
N1qlクエリを変更したいです上記のクエリは完全に機能します。
しかしImは2つのパラメータを更新するため足すクエリで苦労(FIRSTNAME、姓)
N1qlクエリ(2つのパラメータを更新する)
update default use keys "userdetails" set a.firstname="abc",a.lastname="xyz" for a in friends when a.company="microsoft" end returning friends
問い合わせの上、 "姓" のみ更新しています。
UPDATE default
USE KEYS "userdetails"
SET a.firstname="abc" FOR a IN friends WHEN a.company="microsoft" END,
a.lastname="xyz" FOR a IN friends WHEN a.company="microsoft" END
RETURNING friends;
あなたのコメントに答えるためには、次の2つの形式は、二重ループを避ける:
出力
{
"friends": [
{
"company": "microsoft",
"firstname": "criss",
"lastname": "xyz"
},
{
"company": "google",
"firstname": "captain",
"lastname": "america"
}
]}
これは効率的な更新方法ですか? パフォーマンスには影響しません。 ? – ravindar
クエリがエラーをスローしています。 @geraldss '[ { "コード":3000、 "MSG": "構文エラー - で:"、 "query_from_user": "UPDATEデフォルトの\ R \ nUSE KEYS \" userdetails \" \ R \ NSET友人[i] = {\ "firstname \":\ "abc \"、\ "lastname \":\ "xyz \"、\ "company \":\ "microsoft \"} \ "\" \ "\" \ "\" \ "\" \ "\" \ "友人に返信してください。"、 "query_with_limit": "UPDATEのデフォルト\ \ "マイクロソフト\":\ "マイクロソフト\"} \ n "" \ "マイクロソフト\"エンド\友人nRETURNING; " } ] ' – ravindar
あなたは4.5ベータ版を使用していますか?あなたはそれを使う必要があるかもしれません。 – geraldss