所以我有两个系列'专辑'和'艺术家'。我创建了$ 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"
}
}
有人知道我应该改变什么才能使其发挥作用吗?