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

$lookupアグリゲーションの$project

    主な課題は、メインドキュメントのすべてのフィールドが必要なことです。 (すべてを知っているわけではないので)プラスリストから2つだけ。

    これでうまくいくはずです:

    {
      $project: {
        "_id": 0,
        "document": "$$CURRENT",
        "list._id": "$$CURRENT.list._id",
        "list.name": "$$CURRENT.list.name"
      }
    }, {
      $project: {
        "document.list": 0
      }
    }, {
      $addFields: {
        "document.list._id": "$$CURRENT.list._id",
        "document.list.name": "$$CURRENT.list.name"
      }
    }, {
      $replaceRoot: {
        newRoot: "$document"
      }
    }
    

    それはいくつかの段階を経ますが、仕事を成し遂げます:)。現在のドキュメントと必要なリストフィールドのみを取得します。次に、現在のドキュメントからそのリストを削除します。次に、同じドキュメントにリストを追加します(必要な特定のフィールドがあるため)。次に、それらのフィールドをドキュメントに追加し、最後にルートをそのドキュメントに置き換えます。

    ここで機能していることを確認してください



    1. MongoDb合計クエリ

    2. MongoDBとDjangoで使用するPythonAPI

    3. nodejsmongodbオブジェクトIDから文字列

    4. MongoDBは、_idに基づいて1分あたりの新しいドキュメントの数をカウントします