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

MongoDB查询:获取attempts字段含多个键的文档

MongoDB查询解决方案

没问题,我来帮你搞定这个查询需求!结合你的要求,我们需要同时满足两个核心条件:筛选出attempts字段包含多个键的文档,并且只返回用户为stack的记录(自动排除overflow的文档)。

最终查询语句

db.collection.find({
  user: "stack", // 替换成你实际的用户字段名,比如username
  $expr: {
    $gt: [
      { $size: { $objectToArray: "$attempts" } },
      1
    ]
  }
})

各部分解释

  • user: "stack":直接匹配目标用户,这样自然就排除了overflow的文档,比额外写排除条件更高效。如果你的用户字段不是user,记得改成实际的字段名(比如username)。
  • $expr:允许我们在查询条件中使用聚合表达式,这是判断对象键数量的关键——常规查询操作符没法直接处理对象的键数量统计。
  • $objectToArray: "$attempts":把attempts这个对象转换成数组,数组里的每个元素都是{ "k": "键名", "v": "值" }的格式。
  • $size:获取转换后数组的长度,这个长度就等于attempts字段的键的数量。
  • $gt: [...]:判断数组长度是否大于1,也就是attempts包含多个键。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 03:30:07