この RethinkDB クエリの解決策は、何日も前からわかりませんでした。私が t-SQL 開発者であることは役に立ちません...
次のようなドキュメント構造が与えられます。
var messages = {
"Category A" : {
catName: 'Category A',
userInfo: {
userName: 'Hoot',
userId: 12345,
count: 77
}
},
"Category FOO" : {
catName: 'Category FOO',
userInfo: {
userName: 'Woot',
userId: 67890,
count: 42
}
}
}
ここで、"Category A" と "Category FOO" は、ユーザーがアプリに入力した任意の文字列であり、基本的には動的プロパティです。これは、角括弧表記を使用してクライアント側の JS を反復処理するのに最適です。(メッセージ[「カテゴリA」])。
ReQL を使用してuserInfo.count
、両方のテーブルに存在する userId フィールドの別のテーブル UserMessages に「結合」してフィールドを更新する必要があります。
"12345":77, "67890": 42
r.forEach()とr.object()を使用して、結果(例:)を「メッセージ」オブジェクトのサブドキュメントとして追加することができました。
しかし、結果を userInfo に追加する必要があります。
編集:明確にするために...トップレベルのプロパティがわからない場合、userIdに移動するのに苦労しています。すなわち:
r.table('messages')('???????????')('userInfo')('userId')
どんな提案でも大歓迎です。ありがとうございました。