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

MongoDB统计含西雅图办公室公司数 相似查询结果差异原因问询

查询结果差异原因

两个查询的逻辑存在本质区别,具体如下:

  • 你编写的查询 db.companies.find({ "offices.0.city": "Seattle" }).count() 中,offices.0 代表匹配offices数组的第一个元素,只有当公司的第一个办公室位于西雅图时才会被计入统计,因此返回结果更少,仅为110。
  • 平台给出的正确查询 db.companies.find({ "offices": { "$elemMatch": { "city": "Seattle" } } }).count() 中,$elemMatch 运算符的作用是匹配数组内至少存在一个符合条件的元素,只要公司任意一间办公室在西雅图就会被统计,完全符合题目要求,因此返回的117是正确结果。

举个简单的示例验证:
某公司的办公地址数据如下:

{
  "name": "测试公司",
  "offices": [
    {"city": "北京", "address": "xxx"},
    {"city": "Seattle", "address": "yyy"}
  ]
}

这条数据会被$elemMatch的查询正常统计,但不会被offices.0.city的查询命中,因为它的第一个办公地址不在西雅图。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 06:24:03