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

mongoアグリゲーションフレームワークで$push-ingnullを回避する方法

    パーティーに少し遅れましたが..

    同じことをしたかったのですが、次のような表現で実現できることがわかりました。

      // Pushes events only if they have the value 'A'
      "events": {
        "$push": {
          "$cond": [
            {
              "$eq": [
                "$event",
                "A"
              ]
            },
            "A",
            "$noval"
          ]
        }
      }
    

    ここでの考え方は、あなたがそうするとき

    { "$push": "$event" } 
    

    次に、null以外の値のみをプッシュするようです。

    そこで、$ condの誤った条件として返される、存在しない列$novalを作成しました。

    うまくいくようです。それが非標準であり、したがっていつか壊れやすいかどうかはわかりませんが..



    1. perlでmongodbに挿入します

    2. .Dateを使用して*式*のシリアル化情報を判別できません

    3. 新しいドキュメントとして保存せずに、Mongooseスキーマに対してオブジェクトを検証します

    4. Javaを介してMongoDBに一度に複数のドキュメントを挿入する方法