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

Firestore IN查询无法返回null值文档:是否为预期行为及解决方案

问题解答

1. 这是预期行为吗?

是的,这完全是MongoDB的预期行为。$in操作符只会精确匹配你指定数组内的元素。你之前的查询里只传入了空字符串""作为匹配值,null不在这个数组里,所以自然不会返回字段a为null的文档。

2. 如何让查询同时包含null值的文档?

有几种简单的实现方式,根据你的需求选择即可:

方式一:扩展$in的匹配数组

直接把null加入$in的匹配数组中,这样就能同时匹配空字符串和null:

db.collection.find({ a: { $in: ["", null] } })

方式二:使用$or条件明确指定两种情况

如果需要更清晰的逻辑表达,可以用$or分别列出空字符串和null的匹配条件:

db.collection.find({
  $or: [
    { a: "" },
    { a: null }
  ]
})

补充:如果需要匹配字段不存在的情况(可选)

虽然你提到所有文档都包含字段a,但如果后续有字段不存在的场景,可以在条件中加入$exists: false:

db.collection.find({
  $or: [
    { a: "" },
    { a: null },
    { a: { $exists: false } }
  ]
})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 08:52:10