$lt(小于)
最后更新:2026-10-09
$lt(小于)
$lt 选择字段值严格小于指定值的文档。`{ price: { $lt: 20 } }` 匹配价格低于 20 的商品。常用于价格上限、日期截止、分数上限等场景。与 $gt 组合表达开区间。字符串按字典序,日期按时间比较,$lt 同样对类型敏感。
| 分类 | 比较 |
|---|---|
| MongoDB 版本 | 1.0+ |
| 示例语言 | mongosh (Shell) |
📝 语法
{ <字段>: { $lt: <值> } }
⚙️ 参数
| 字段 | 要匹配的文档字段名。 |
|---|---|
| 值 | 要比较的上限值,不含该值本身。 |
返回值:匹配的文档游标
▶ 示例
请在本地安装的 mongosh 中执行以下命令(需已启动 mongod):
// $lt:价格低于 20 的商品
db.products.find({ price: { $lt: 20 } })
// 截止日期之前注册的用户
db.users.find({ registeredAt: { $lt: new Date('2026-01-01') } })
运行结果:
// 返回所有价格小于 20 的商品;2026 年 1 月 1 日前注册的用户
📌 注意事项
- $lt 不含边界值,包含边界用 $lte
- 与 $gt 同字段组合即开区间,如 { score: { $gt: 60, $lt: 90 } }
- 对日期字段直接传字符串会按字典序比较,务必用 new Date()
🏷️ 相关标签
💡 相关案例
📚 相关教程
❓ 常见问题
Q$lt 和 $lte 的区别?
A$lt 严格小于不含边界,$lte 小于等于含边界。查「低于 20」用 $lt: 20,查「不超过 20」用 $lte: 20。
Q怎么查分数在 60 到 90 之间?
A同字段组合 { score: { $gt: 60, $lt: 90 } },表达开区间。
Q$lt 查日期要注意什么?
A用 new Date('YYYY-MM-DD') 包装日期,否则字符串日期按字典序比较,可能得到意外结果。