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 运算符。