You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Mongoose中查询存在同时满足多条件子文档的记录

Mongoose 嵌套数组多条件查询解决方案

你原先的查询写法会分别匹配drivers数组中的不同元素,只要数组内存在满足年龄大于25的元素、同时存在已注册的元素就会返回对应Car文档,无法要求两个条件作用在同一个数组元素上。

你可以使用MongoDB提供的$elemMatch操作符实现需求,它可以限定数组中至少存在一个元素同时满足所有指定的查询条件,正确写法如下:

Car.find({
  drivers: {
    $elemMatch: {
      age: { $gt: 25 },
      registered: true
    }
  }
})

额外注意

  • 你给出的DriverSchema定义中,age字段的类型被设置为String,直接使用数值比较符$gt可能会出现不符合预期的结果,建议将该字段类型调整为Number保证比较逻辑正确。

内容的提问来源于stack exchange,提问作者will_durant

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 23:51:03