mongodb - 查询具有对象数组的文档,其所有数组元素都包含值为 null 的键
问题描述
我想获取所有具有对象数组的文档,其所有数组元素都包含值为 null 的键
{ "_id" : ObjectId("5d769272db4f632399abbb14"),
"used":true,
"contacts":[
{email:null, username:"john"},
{email:"steve@gmail.com",username:"steve245"}
]
},
{ "_id" : ObjectId("5d769272db4f632399abbb14"),
"used":false,
"contacts":[
{email:null, username:"paul"},
{email:null, username:"retinza612"}
]
}
检索结果
{ "_id" : ObjectId("5d769272db4f632399abbb14"),
"used":false,
"contacts":[
{email:null, username:"paul"},
{email:null, username:"retinza612"}
]
}
解决方案
您必须使用$elemMatch查询运算符来查找“联系人不遵循 ($not) 至少一封电子邮件不为空的事实”的文档:
db.collection.find({
"contacts": {
$not: {
$elemMatch: {
email: {
$ne: null
}
}
}
}
})
将按预期结果
推荐阅读
- flutter - Flutter - TextField 内的文本未垂直居中
- jmeter - 如何使用 JMeter 登录 Azure Active Directory 单点登录 (SSO) 与 Google Cloud (G Suite) 连接器的集成
- php - Catalina sh:/usr/local/bin/php:可执行文件中的 CPU 类型错误
- amazon-cloudwatch - 创建特定分支模式时触发 CodeDeploy
- java - 如何在微调器 android studio 中更改项目
- amazon-web-services - AWS 将 SSL 证书从 Amazon Certificate Manager 安装到 EC2 Ubuntu
- javascript - 在功能组件中使用道具时出现问题 IT 说 TypeError:onClick 不是函数
- python - Python HTTP 服务器保持活动状态
- python - 字符串对象如何存储在内存中,为什么要在 python 中将字符串对象转换为字节对象?
- angular - 为什么即使不在任何模块的声明中也可以访问组件?