Как я могу присоединиться к 3 коллекции с агрегацией? - PullRequest
0 голосов
/ 04 октября 2018

Вот моя структура

страна

[
    {
        "studentid": [
            "5bb482fdac231f1354c47aab"
        ],
        "_id": "5bb672fb92c98117d004c733",
        "name": "china",
        "__v": 0
    }
]

пользователи

[
    {
        "books": [
            "5bb657ea05bf6d0ef096e529",
            "5bb6580d05bf6d0ef096e52a"
        ],
        "_id": "5bb482fdac231f1354c47aab",
        "firstName": "will",
        "lastName": "smith",
        "email": "user3@gmail.com",
        "address": "rajkot",
        "salary": 5000,
        "department": "electrical",
        "__v": 0
    }
]

книги

[
    {
        "_id": "5bb657ea05bf6d0ef096e529",
        "name": "book 1",
        "price": 100,
        "pages": 200,
        "__v": 0
    }
]

Теперь я пытаюсь присоединиться к этим 3 коллекциям по каждому массиву

Вот код, который я пробовал

CountryModel.aggregate([
    { $match: { name: country } },
    {
        $lookup: {
            from: UserModel.collection.name,
            let: { student_id: "_id" },
            pipeline: [
                { "$match": { "_id": "$student_id" } },
                {
                    $lookup: {
                        from: UserModel.collection.name,
                        let: { book_id: "$books" },
                            pipeline: [
                                {
                                    $lookup: {
                                        from: BookModel.collection.name,
                                        let: { bookid: "$_id" },
                                        pipeline: [
                                            { "$match": { "$expr": { "$in": ["$book_id", "$bookid"] } } },
                                        ],
                                        as: "more"
                                    }
                                }
                            ],
                            as: "books"
                        }
                    }
                ],
                as: "studentid"
            },
        },
    ])

Может кто-нибудь сказать мне, где яя делаю не так?

...