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

条件付きのMongoDBアップデート

    Mongo 4.2を開始 、db.collection.update() 集約パイプラインを受け入れることができ、最終的に別のフィールドに基づくフィールドの更新/作成を許可します:

    // { a: "Hello", b: "World" }
    // { a: "Olleh", b: "Dlrow" }
    db.collection.update(
      {},
      [ { $set: { active: { $eq: [ "$a", "Hello" ] } } } ],
      { multi: true }
    )
    // { a: "Hello", b: "World", active: true  }
    // { a: "Olleh", b: "Dlrow", active: false }
    
    • 最初の部分{} 一致クエリであり、更新するドキュメント(この場合はすべてのドキュメント)をフィルタリングします。

    • 2番目の部分[ { $set: { active: { $eq: [ "$a", "Hello" ] } } } ] は更新アグリゲーションパイプラインです(アグリゲーションパイプラインの使用を示す角かっこに注意してください)。 $set は新しい集計演算子であり、$addFieldsのエイリアスです。 。次に、$set内で任意の集計演算子を使用できます ステージ;この場合、新しいactiveに使用する値に依存する条件付き等価性チェック フィールド。

    • { multi: true }を忘れないでください それ以外の場合は、最初に一致するドキュメントのみが更新されます。



    1. MongoDB-データのインポート

    2. MongoDB-コレクションのクエリ

    3. Laravelの外部からLaravelキューにプッシュする(NodeJS)

    4. MongoDB $ isoWeekYear