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

MongoDB统计property_type为House且含Changing table文档返回0问题

原查询存在的问题
  • 参数位置错误:MongoDB的find()方法第一个参数为查询过滤条件,第二个参数为返回字段的投影配置,你将两个过滤条件拆分传入两个参数,第二个amenities的匹配条件被当成了投影规则,完全没有生效。
  • 匹配值语法错误:你在要匹配的字符串House和Changing table前都加了多余的$前缀,加$后MongoDB会将其识别为字段引用,而非你要匹配的固定字符串值,自然匹配不到任何结果。
  • 数组匹配逻辑错误:amenities是数组类型,用$eq匹配只会命中整个数组完全等于目标值的文档,无法匹配数组中包含该元素的场景。
修正后的查询语句

直接将两个过滤条件合并到同一个查询对象中,数组包含指定元素直接填写字段名和目标值即可,推荐优先使用countDocuments()做统计,结果比count()更稳定准确:

db.listingsAndReviews.countDocuments({
  "property_type": "House",
  "amenities": "Changing table"
})

如果需要兼容更复杂的数组匹配场景,也可以用$in写法,效果一致:

db.listingsAndReviews.countDocuments({
  "property_type": { $eq: "House" },
  "amenities": { $in: ["Changing table"] }
})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 20:45:04