Javascript 使用Mongoose查找特定的对象数组,只需获取其中的所有对象即可

Javascript 使用Mongoose查找特定的对象数组,只需获取其中的所有对象即可,javascript,mongodb,mongoose,Javascript,Mongodb,Mongoose,想象一下,我有这个收藏: { "_id": "2020 Standings", "DriversChampionship": [ { "_id": "5fd3966d2769dc12dc010475", "driverName": "Lewis Hamilton", "driverTeam&quo

想象一下,我有这个收藏:

{
  "_id": "2020 Standings",
  "DriversChampionship": [
    {
      "_id": "5fd3966d2769dc12dc010475",
      "driverName": "Lewis Hamilton",
      "driverTeam": "Mercedes AMG",
      "driverPts": "230"
    },
    {
      "_id": "5fd3966d2769dc12dc010476",
      "driverName": "Sebastian Vettel",
      "driverTeam": "Ferrari",
      "driverPts": "161"
    }
  ],
  "ConstructorsChampionship": [
    {
      "_id": "5fd3966d2769dc12dc010489",
      "teamName": "Mercedes AMG",
      "teamPts": "230"
    },
    {
      "_id": "5fd3966d2769dc12dc01048a",
      "teamName": "Ferrari",
      "teamPts": "161"
    }
  ]
}

在Routes文件夹中,我得到了这个GET请求

router.route("api/standings/:arrayName")
    .get(getStandingsArray);
那么,我如何使用Mongoose查找,然后发送res.json,其中只包含与
:arrayName匹配的数组?

让我用一个例子更好地解释一下:

var query = modelName.find({}).select('DriversChampionship -_id');
我键入以下路线
http://localhost:4000/api/standings/DriversChampionship

然后,在我的控制器中,我请求使用以下命令获得
:arrayName

const arrayName = req.params.arrayName

// arrayName = DriversChampionship
为了以后使用
modelName.find()
打印这个特定的对象数组

"DriversChampionship": [
    {
      "_id": "5fd3966d2769dc12dc010475",
      "driverName": "Lewis Hamilton",
      "driverTeam": "Mercedes AMG",
      "driverPts": "230"
    },
    {
      "_id": "5fd3966d2769dc12dc010476",
      "driverName": "Sebastian Vettel",
      "driverTeam": "Ferrari",
      "driverPts": "161"
    }
  ]
我想弄明白,但我真的不知道如何告诉猫鼬

有什么想法吗

如果你不明白我的任何解释,请告诉我


谢谢

通过使用select,您可以获得所需的字段(在您的示例中为“DriversChamposion”),下面是一个示例:

var query = modelName.find({}).select('DriversChampionship -_id');
要使其动态化,请执行以下操作:

const arrayName = req.params.arrayName
var query = modelName.find({}).select(`${arrayName} -_id`);

谢谢,成功了!我可以问一下为什么在数组名后面使用-\u id吗?因为除非我们排除它,否则\u id字段总是存在的