sql >> データベース >  >> NoSQL >> MongoDB

MongoDB updateMany with Conditional

    本当に欲しいのは bulkWrite() 2つの"updateMany"を使用する 代わりにその中のステートメント。集計式を使用して、どの形式の更新ステートメントでも「代替選択」を実行することはできません。

    db.country.bulkWrite([
      { "updateMany": {
        "filter": { "pop": { "$lt": 20000000 } },
        "update": { "$set": { "country": "Small Country" } }
      }},
      { "updateMany": {
        "filter": { "pop": { "$gt": 20000000 } },
        "update": { "$set": { "country": "Large Country" } } 
      }}
    ])
    

    SERVER-6566 にはまだ未解決の「機能リクエスト」があります 「条件付き構文」の場合ですが、これはまだ解決されていません。 「バルク」APIは、このリクエストが発生した後に実際に導入されたものであり、実際に適応することができます。 多かれ少なかれ 同じことです。

    $ outも使用します 他の方法で提案された集計ステートメントでは、"更新"のオプションではありません。 現在、「新しいコレクション」にしか書き込むことができません。 MongoDB 4.2以降の予定されている変更により、 $ out 実際に"更新" 既存のコレクション、ただし これは、更新されるコレクションが、集約パイプラインからのデータの収集内で使用される他のコレクションと異なる場合にのみ発生します。したがって、不可能 集約パイプラインを使用して同じを更新する コレクション あなたが読んでいるものとして。

    つまり、 bulkWrite()




    1. 保存されたJavaScriptをnode.jsからmongodbに保存するにはどうすればよいですか?

    2. リアクティブSpringDataMongoDBでdb参照を使用するにはどうすればよいですか?

    3. 誕生日のユーザーのリストを取得する方法は、今日MongoDBにあります

    4. MongoDBでのデータ型変換