問題タブ [mongodb-update]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
49 参照

node.js - Mongodbドット表記が配列を更新しない

mongodb の配列のドット表記に問題があります。

ユーザーオブジェクトの「ベース」配列には、ドット表記で更新しようとしている一連のベースがあります。さらに複雑なことに、更新を関数の配列にプッシュし、Async ライブラリを使用してそれらを呼び出しています。

私の結果は次のように述べています。

「id」:baseOwner に一致するドキュメント内に bases 配列が存在することを確認しました。要素ゼロは配列に存在します (これは重要ではありませんが、既に存在しています)。

更新をコンソールに貼り付けると、次のようになります。

最後に、ドット表記が含まれていない場合、更新によってドキュメントが正しく変更されるため、非同期更新システムが機能していることがわかります。

ドット表記に何か問題があると思いますが、何がわかりません。

私は明らかな間違いを犯していますか?

0 投票する
1 に答える
444 参照

java - mongodb のオブジェクトでネストされた配列要素を見つけて更新する方法

下にコレクションがあります。配列要素を更新しようとしています。

lineItem _id の値が 1 の場合は更新しようとしています。spec リストに移動し、specName が「モデル」の場合は、characteristicsValue を 900 から 50 に更新します。ご覧のとおり、_id も配列です。

コレクションデータ:

関連するアップデートが期待どおりに機能しません。

編集: すべての _id には仕様配列があります。そのため、_id を見つけてから、_id 配列の下の仕様に移動し、ブランドを見つけて値を更新する必要があります。

0 投票する
1 に答える
86 参照

mongodb - MongoDB: 外部配列とネストされた配列を 1 回の更新で更新する

コレクション内の文書構造citiesはこんな感じ

都市

ユーザーが以下のように購読すると

citiesドキュメントの以下を更新したい

  • 「プリントマガジン」の購読者数を1増やす
    • 「時間」の登録者数を 1 増やす
    • 「グルメ」の登録者数を 1 増やす
  • 「RSS フィード」の購読者数を 1 増やす
    • 「政治」の登録者数を 1 増やす
    • 「アントレプレナーシップ」の登録者数を 1 増やす

そのため、アイテムがサブスクライブされると、そのサブスクライバー カウントが 1 増加します。また、アイテムが属するカテゴリのサブスクライバー カウントも 1 増加します。

これを単一の更新クエリで実現したいと考えています。どうすればこれを行うことができますか?

ユースケースの詳細

各ユーザーのサブスクリプションの詳細はuser_subscription_detailsコレクションに保存されます (ここには記載されていません)。subscriptionsのプロパティはcities、各都市のサブスクリプションの概要のみを保持します。