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

MongoDBの非対称的なデータの戻り、配列の最初の項目が完全に返され、残りは特定のプロパティが省略されていますか?

    省略したいサブドキュメント配列がそれほど大きくない場合。アプリケーション側で削除するだけです。 MongoDBで処理を行うということは、アプリケーションの代わりにMongoDBのコンピューティングリソースを使用することを選択することを意味します。一般に、アプリケーションはスケーリングが簡単で安価であるため、アプリケーション層での実装が望ましいです。

    しかし、この正確なケースでは、MongoDBに実装するのはそれほど複雑ではありません:

    db.collection.aggregate([
      {
        $addFields: { // keep the first element somewhere
          first: { $arrayElemAt: [ "$mainArray", 0] }
        }
      },
      {
        $project: { // remove the subdocument field
          "mainArray.array": false
        }
      },
      {
        $addFields: { // join the first element with the rest of the transformed array
          mainArray: {
            $concatArrays: [
              [ // first element
                "$first"
              ],
              { // select elements from the transformed array except the first
                $slice: ["$mainArray", 1, { $size: "$mainArray" }]
              }
            ]
          }
        }
      },
      {
        $project: { // remove the temporary first elemnt
          "first": false
        }
      }
    ])
    

    MongoDBプレイグラウンド




    1. マングースを使用したmongodbの接続タイムアウト

    2. MongoDB:クライアント側でDBRefを解決する方法は?

    3. PHPでMongoDBコンソールスタイルのクエリを実行するにはどうすればよいですか?

    4. MongoDBアグリゲーションを使用したイベントのコレクションからの線形ファネル、それは可能ですか?