$ lookup中的嵌套正则表达式

时间:2018-01-14 16:43:51

标签: javascript mongodb mongoose

所以我有两个系列'专辑'和'艺术家'。我创建了$ lookup查询,用于根据他们在专辑文档中的ID查找艺术家的信息。这是简单的查询,看起来像这样:

 Album.aggregate([{
        $match: {
            name: {$regex : myAlbumRegex, $options: 'i'}
        }
    },
    {
        $lookup: {
            from: "artists",
            "localField": "idArtist",
            "foreignField": "_id",
            as: "artist"
        }       
    }

这很好用。但现在我想对我发现的艺术家名字进行正则表达式。我尝试使用'管道',但它似乎不起作用。有代码:

 Album.aggregate([{
        $match: {
            name: {$regex : myAlbumRegex, $options: 'i'}
        }
    },
    {
        $lookup: {
            from: "artists",
            pipeline: [
                { $match: { name: {$regex : myAuthorRegex, $options: 'i'} } },
                { $project: { _id: 0, data: { name: "$name" } } },
                { $replaceRoot: { newRoot: "$data" } }
            ],
            as: "artist"
        }       
    }

有人知道我应该改变什么才能使其发挥作用吗?

0 个答案:

没有答案