首页/数据/NoSQL 速查/$where 表达式过滤
本包目录(322 条)
MongoDB99 条
Elasticsearch89 条ClickHouse56 条时序与列式28 条选型与架构50 条

$where 表达式过滤

用 JavaScript 表达式逐文档过滤(this 指向文档);无法利用索引且执行任意脚本,只适合小集合或临时排查。

NoSQL 速查数据更新于 2026-10-12
写法$where: "this.rx > this.tx" 或函数
性能逐文档执行 JavaScript,无索引可用

示例

示例
db.metrics.find({ $where: "this.rx > this.tx" })
执行任意 JS 存在注入与性能风险,等效逻辑用 $expr 表达,能避免脚本执行开销。

易错点

  • $where 在部分环境下被禁用或限制,且审计与排错困难,生产查询避免使用

数据来源与参考

  • MongoDB Manual: $where
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌