mongodb - 如何使用数组内的嵌入文档的字段查找文档?
问题描述
我有学生记录的数据/架构:
{
"_id" : ObjectId("579ed0ba7d509178a97fae8f"),
"fullName" : "ABC",
"enroll" : "AB1234",
"profile" : {
"isCompleted" : true,
"verification" : [
{
"pro" : true,
"verifiedBy" : "ProAct",
"verifiedOn" : ISODate("2016-09-12T07:36:53.680Z")
},
],
"isChecked" : false,
"fullName" : "ABC",
"gender" : "Male",
"emergencyContactPerson" : {
"name" : "Father",
"mobile" : "9412345678",
"email" : "example@gmail.com",
},
},
"contact" : {
"emailID" : {
"isVerified" : true,
"isChecked" : false,
"verificationTokenExpiresIn" : ISODate("2016-08-01T05:35:00.218Z"),
"verifiedOn" : ISODate("2016-08-01T04:35:10.992Z")
},
"mobileID" : {
"isVerified" : true,
"isChecked" : false,
"verificationTokenExpiresIn" : ISODate("2016-08-01T04:42:45.206Z"),
"verifiedOn" : ISODate("2016-08-01T04:33:36.692Z")
}
},
"services" : [
{
"applied" : true,
"appliedOn" : ISODate("2016-09-17T03:01:49.829Z"),
"status" : "Created",
"mac" : "70-77-88-00-AA-BB",
"createdBy" : "Example"
},
]
}
如何构建查询,在 mac 地址 70-77-88-00-AA-BB 的帮助下获取学生信息。我只知道mac地址值?
我是新来的,请帮帮我
解决方案
询问
services.mac
是服务的所有 MAC 地址成员的数组- 在查询中(不在聚合中
$eq
),如果数组包含该值,则该数组等于该值,因此上述方法将起作用 - 波纹管查询返回所有在 services 数组上具有该 mac 地址的学生
- 如果你想让它更快,你也可以在“services.mac”上创建一个索引
*阅读 mongodb 文档,它非常好,并附有示例
db.collection.find({
"services.mac": "70-77-88-00-AA-BB"
})
推荐阅读
- python - 如何解释 imblearn 管道的预测?
- pyspark - 来自 mllib 的梯度提升树中的类型错误
- vue.js - 如何仅引用多个元素中的一个元素?Vue.js
- c# - EF Core 2.2 与 oracle DateTime.UtcNow
- python - TensorFlow 1.12.0 安装不可见
- docker - 从 docker-compose 到 .net 核心应用程序的环境变量
- javascript - gulpjs - “你忘记发出异步完成信号了吗?” 从 uglifyjs 切换到 terser 之后
- php - android kotlin 应用程序无法通过 laravel 的改造来解析数据
- sonarqube - 不满足成功条件时,质量之门不会失败
- java - Java中String compareTo函数的时间复杂度是多少?