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

如何用MongoDB查询获取非空的嵌套manuelActivityInfo对象

修正后的MongoDB查询语句

要仅获取包含非空manuelActivityInfo对象的记录,需同时排除该字段为null或空对象{}的情况,以下是两种可行的查询方案:

方案1:严格校验(适配复杂场景)

适用于需要确保manuelActivityInfo是存在、非null且包含实际属性的对象:

db.collection.find({
  "manuelActivityInfo": {
    $exists: true,
    $ne: null,
    $type: "object",
    $expr: { $gt: [{ $size: { $objectToArray: "$manuelActivityInfo" } }, 0] }
  }
})
  • $exists: true:确保字段存在
  • $ne: null:排除字段为null的记录
  • $type: "object":确保字段类型是对象
  • $objectToArray + $size:校验对象包含至少一个属性,避免空对象

方案2:简洁写法(常规场景适用)

如果你的数据中manuelActivityInfo仅存在null、空对象、有效对象三种情况,可使用更简洁的条件:

db.collection.find({
  "manuelActivityInfo": {
    $ne: null,
    $ne: {}
  }
})

内容的提问来源于stack exchange,提问作者Erdal Tutku YILMAZ

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 06:12:02