我想基于记录的一个字段值在填充中使用不同的匹配条件。我曾尝试在find()中使用$ where,但在填充字段中找不到。
我还尝试在match中使用$ where函数,但是它不起作用。
我知道我可以在exec中过滤文档,但是在mongoose API中有什么好的方法吗?
collection1.find({}).populate([{
path:"collection2"
}]).exec(function (err, docs) {
res.send({data:docs})
})
collection1:
{
option:1,
array_id:5c34e9586c9fa209e623ce38
},
{
option:2,
array_id:5c34e9586c9fa209e623ce37
},
{
option:3,
array_id:5c34e9586c9fa209e623ce36
}
collection2:
{
_id:5c34e9586c9fa209e623ce38,
array:["a", "b", "c", "d"]
}
填充我的记录后
data:{
option1,
array_id:{
_id:5c34e9586c9fa209e623ce38,
array:["a", "b", "c", "d"]
}
}
如果选项为1,则匹配collection2中的数组包含“ a”,如果选项为2,则匹配collection3中的数组包含“ d”,f选项为3,则选择此记录。