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

ネストされたドキュメントのMongoDB$lookup

    この場合、集約フレームワークで$unwindと$projectをうまく操作する必要があります

    以下をご覧ください:

    db.alumni.aggregate([
        {$match: {_id: 'john'}},
        {$unwind:"$items"},
        {$unwind:"$items.items"},
        {$lookup: {
            from: 'schools', 
            localField: 'items.items.school', 
            foreignField: '_id', 
            as: 'schoolInfo'}},
        {$unwind:"$schoolInfo"},
        {$project:{
            "_id":1,
            "items":[{
                "name":"$items.name",
                "items":[{
                "school":"$schoolInfo._id"    ,
                "grad":"$items.items.grad"    ,
                "schoolInfo":"$schoolInfo"
                }]
            }]            
        }}
    ]).pretty()
    

    動作を確認するには、クエリから集計ステージを削除して、ドキュメントの構造を確認してください。



    1. トップMongoDBリソース

    2. Mac上のmongodbデータベースの場所

    3. SQLで数値を含まない値を検索する

    4. マングースサブドキュメントとネストされたスキーマ