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

MongoDB$unset条件が満たされた場合

    クエリ

    • システム変数$$REMOVEを使用します フィールドがこの値を取得すると、削除されます
    • したがって、条件はuser.codeです。 、"BLOCKED"でない場合は、古い値を保持します 、"CANCELLED" 、それ以外の場合は"$$REMOVE" フィールド

    ここでコードをテスト

    db.collection.aggregate([
      {
        "$set": {
          "user.code": {
            "$cond": [
              {
                "$in": [
                  "$user.status",
                  [
                    "BLOCKED",
                    "CANCELLED"
                  ]
                ]
              },
              "$$REMOVE",
              "$user.code"
            ]
          }
        }
      }
    ])
    

    編集

    上記のコードはuser.statusをチェックします ただし、user.olderAdress.statusに基づいてコードを削除するかどうかを指定します (巻き戻し後)(同じ名前のステータスを持つ2つのフィールド)

    クエリ(すでにあるステージの後にこれを追加します)

    テストコード

    {
        "$set": {
          "user.code": {
            "$cond": [
              {
                "$in": [
                  "$user.status",
                  [
                    "BLOCKED",
                    "CANCELLED"
                  ]
                ]
              },
              "$$REMOVE",
              "$user.code"
            ]
          }
        }
      }
    



    1. 階層構造Firestoreとサブコレクション

    2. MongoDBコレクションのオブジェクト配列でクエリされた複数の要素を取得します

    3. mongocxx c ++ドライバーを使用してMongodbドキュメントを再帰的に生成するにはどうすればよいですか?

    4. SailsJS:送信された関数でAjaxのResonseを取得-SailsJSの形式