mongoose — 查询中的数组变量
mongoose — Array variable in query
我正在尝试编写一个 mongoose 查询,它允许我找到一个包含填充数组的文档,其中数组的名称存储在一个变量中。我尝试了各种语法,使用 [方括号] 等,我搜索过但找不到任何有效的方法。
var arrayName = req.params.abbreviation + "Films";
console.log(arrayName); //documentaryFilms
FilmModel.findOne({
$and: [
{ incomplete: false },
{ [arrayName].[0]: { $exists: true } }
...
有人知道如何实现吗?谢谢
使用$size
运算符获取数组的长度。
FilmModel.aggregate(
[
{
$addFields: {
"size_of_array": {
$size: "$abcFilms"
}
}
}
{
$match: { "size_of_array": { $gt: 0 } }
}
])
如果您想根据数组中索引为 n
的元素进行过滤,请查看 $arrayElemAt
运算符。
我正在尝试编写一个 mongoose 查询,它允许我找到一个包含填充数组的文档,其中数组的名称存储在一个变量中。我尝试了各种语法,使用 [方括号] 等,我搜索过但找不到任何有效的方法。
var arrayName = req.params.abbreviation + "Films";
console.log(arrayName); //documentaryFilms
FilmModel.findOne({
$and: [
{ incomplete: false },
{ [arrayName].[0]: { $exists: true } }
...
有人知道如何实现吗?谢谢
使用$size
运算符获取数组的长度。
FilmModel.aggregate(
[
{
$addFields: {
"size_of_array": {
$size: "$abcFilms"
}
}
}
{
$match: { "size_of_array": { $gt: 0 } }
}
])
如果您想根据数组中索引为 n
的元素进行过滤,请查看 $arrayElemAt
运算符。