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

求MongoDB查询语句:筛选devices字段为对象类型的用户列表

解决MongoDB筛选devices字段为对象类型用户的问题

没问题,这事儿用MongoDB的$type操作符就能轻松搞定!

你需要区分三种情况的devices字段:空数组、包含内容的数组、单个对象。我们的目标是只捞回单个对象类型的记录,所以直接针对字段类型做筛选就行:

db.users.find({
  devices: { $type: "object" }
})

为什么这个查询有效?

MongoDB的$type操作符可以匹配指定BSON类型的字段:

  • 数组类型(不管是空数组还是包含元素的数组)对应的BSON类型是"array"(或数字4)
  • 对象类型对应的BSON类型是"object"(或数字3)

所以上面的查询会自动排除所有devices是数组的用户,只返回devices为单个对象的记录。

额外验证小技巧

如果你想先确认每个用户的devices类型,可以用这个查询查看:

db.users.find(
  {},
  { username: 1, devices: 1, device_type: { $type: "$devices" } }
)

这样返回的结果里会多一个device_type字段,显示该用户devices的类型,方便你验证筛选逻辑是否正确。

内容的提问来源于stack exchange,提问作者Pavan kumar Dasireddy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 04:15:12