MongoDB如何查询存在指定字段时字段值非null且不为空字符串的文档
MongoDB查询调整方案
最终可用查询语句
db.your_collection_name.find({ client_comment: { $exists: true, $nin: [null, ""] } })
条件说明
$exists: true:过滤掉所有不包含client_comment字段的文档$nin: [null, ""]:同时过滤client_comment值为null和空字符串的文档,一步覆盖你需要排除的所有异常值场景
原写法问题说明
你原来的查询逻辑存在两处冗余和遗漏:
- 额外加的
$expr判断是冗余的,前面的$ne: null已经实现了排除null值的效果 - 没有添加空字符串的排除规则,所以会返回
client_comment为空白字符串的记录
效果验证
对应你提供的三个示例文档,查询结果仅会保留client_comment为"Lorem ipsum"的有效记录,完全符合业务要求。
内容的提问来源于stack exchange,提问作者shAkur
相关产品推荐
相关产品推荐

