查看以下查询:
db.models.findOne({ "value.userId": { $ne: null } }, { "value.userId":1}).value.userId == null
这说:
- 查找具有非空用户 ID 字段的记录
- 在结果中返回用户 ID
- 将该值与 null 进行比较
由于我们只返回没有 null 值的记录,因此将结果与 null 进行比较应该总是返回 false。但是,这始终返回 true。
如果我只是执行 .findOne(...) 并打印它而不是进行比较,我会得到:
{ "_id": 4, "value": { "userId": null }
有人知道这里发生了什么吗?
编辑:该字段的“类型”显然是 6 - 而不是 10,这应该是 null。EDIT2:显然类型 6 是“未定义” - 不知道为什么它打印空......