問題タブ [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.
mongodb - MongoDBは、別のコレクション内のすべてのドキュメントにドキュメントを挿入します
users
次のようなドキュメントを含むコレクション ( ) があります。
user
コレクション内のすべてのエントリに対して新しいドキュメントを作成したいと考えています。ドキュメントは、次のような通知オブジェクトから作成されます。
コレクションnotifications
は次のようになります。
mongodb リクエストでこれを行う方法はありますか?
arrays - MongoDB:配列オブジェクトが見つかったかどうかに応じて追加または更新する方法は?
オブジェクトを配列に追加するために使用できる mongoDB 操作、またはオブジェクトが既に配列内にある場合はその値の 1 つを更新するために使用できるもの。
これが私のmongodbデータの例です:
私がやりたいことは、mongodb-update を使用してコレクション内のすべてのデータを更新することです。すべての「BAR」チャンネルのステータスを変更する必要があるとしましょう。次のいずれかの更新が必要です。
コレクション内のすべてのオブジェクトに新しい channelStatus {"channel" : "BAR", "status" : "done"} を追加します。
オブジェクトが既に「channel」:「BAR」の channelStatus を持っている場合、そのオブジェクトの「ステータス」を「完了」に更新するだけです。
単純に addToSet を使用すると、次のように重複が追加されます。 "}]
これを行うための受け入れ可能な方法は、最初に古いオブジェクトを削除してから、addToSet を使用して新しいオブジェクトを追加することです。しかし、1回の更新でこれを行う方法はありますか?
arrays - MongoDB Bulk.find.update() は配列オブジェクトを変更せず、新しいオブジェクトを追加するだけです
MongoDB の $set & $-operators に問題があります。既存の配列を変更しようとしています
私の更新方法は次のようになります (Clojure/Monger で記述されているため、正確なコピーを取得できません)。
私のデータは次のようになります。
したがって、ドキュメントの channelStatuses オブジェクトのステータスを _id = 2 に変更する必要があります。
代わりに、channelStatuses 配列内に新しいオブジェクトを作成し、ドキュメントは次のようになります。
node.js - MongoDb の条件付き更新
この条件付き更新を 1 つの db 呼び出しのみ、つまり のみを使用して行うより良い方法はありuser.update
ますか?
node.js - node.js mongodbは、配列内で最初に見つかったサブドキュメントのみを更新します
ユーザー コレクション:
更新ステートメント
transaction.id = "m69bkn"
代わりに更新されまし"nhaa94"
た最初に見つかったサブドキュメントを更新するだけです私はここでSOのように検索していると思います
$ を使用した配列の更新は、mongodb-native nodejs では機能しません
と
https://docs.mongodb.com/manual/reference/operator/update/positional/
と
arrays - $in と $addtoSet Mongodb を使用して配列を更新する
コレクション内の配列を更新するために$in
andを使用しています。$addToSet
この種のドキュメントがあるとします。
このドキュメントをすべて更新して、ID の配列を取得したい
このように配列を使用しmap
ます。
コレクション内のすべてのドキュメントを更新するには。
andを使用する$in
と$addToSet
、ドキュメントが機能して更新されますが、最後のドキュメントのみが更新されます。
どうしてか分かりません。個別に更新するためだけに for ループを作成したくありませんが、それが私の最後の手段のようです。私を助けてください。ありがとう!