$lookup в массиве объектов mongodb

Есть коллекция books в которой данные хранятся в некотором виде. У меня задача через lookup получить коментарии и информацию о пользователе, который оставил коментарий. У меня получилось заменить id на информацию с коментарием и потом id пользователей заменить на их информацию. Но моё решение частично работает т.к. не получается сделать получение информации о пользователе через let и pipeline в lookup. Из-за того, что id может быть в виде строки, по этому и есть необходимость в реализации через let и pipeline.

Образец исходного 
"book":{
    _id:...,
    ...,
    //Array<String>
    comments:[
        "609331be9eaf660870f7115c",
        "609331be9eaf660870f7115d",
        "609331be9eaf660870f7115e",
        "609331be9eaf660870f7115f",
        "612639cb6fd55ca429d723bd"
    ]
}

Первая итерация

{ $lookup: {
    from: 'comments',
    let: {id: "$_id"},
    pipeline: [
        {$match:
            {$expr: {
                $or:[
                        {$eq: ["$_bookId", "$$id"]}, //Если оно ObjectId 
                        {$eq: ["$_bookId", { $toString: "$$id" }]} //Если оно String
                    ]
                }
            }
        }
    ],
    as: 'comments'
}}

Результат после первой итерации:

"book":{
    _id:...,
    ...,
    //Array<Object>
    comments:[
        {
            "_id": "609331be9eaf660870f7115c",
            "_user": "608b8e66c339f71634642f68",
            "text": "Какой-то текст"
        },
        ...
    ]
}

Вторая итерация без использования let и pipeline

{ $lookup: {
    from: 'users',
    localField:'comments._user',
    foreignField:'_id',
    as: 'comments_user'
}}

Попытки не удачные:

{ $lookup: {
    from: 'users',
    let: {id_temp: "$сomments"}, //"$сomments._user"
    pipeline: [
        {$match:
        {$expr: {
            $or:[
                {$eq: ["$_id", "$$id_temp"]},
                {$eq: ["$_id", { $toString: "$$id_temp" }]}
            ]}
        }}
    ],
    as: 'comments_user'
}}

Ответы (0 шт):