如何通过数组内嵌入式文档的mac字段查询MongoDB学生文档
MongoDB查询学生记录语句说明
基础查询(返回完整学生信息)
你要查询的mac字段存储在数组类型的services字段内部,MongoDB中查询嵌套数组字段直接使用点号匹配即可,示例语句如下(请将your_collection_name替换为你实际存储学生数据的集合名):
db.your_collection_name.find({ "services.mac": "70-77-88-00-AA-BB" })
上述语句会返回所有services数组中包含mac等于70-77-88-00-AA-BB的学生完整记录。
可选优化:仅返回匹配的服务条目
如果你不需要返回该学生所有的services数组内容,只需要返回匹配到mac地址的那一条服务数据,可以使用位置操作符$做投影过滤:
db.your_collection_name.find( // 查询条件 { "services.mac": "70-77-88-00-AA-BB" }, // 投影配置:仅返回匹配的service条目、学生姓名、学号等基础信息 { "services.$": 1, fullName: 1, enroll: 1, profile: 1, contact: 1 } )
注意事项
- 字段名称大小写要和实际存储一致,比如你存储的是
mac就不能写成Mac,否则会查询失败 - 如果你使用的是Python、Java等其他语言的MongoDB驱动,查询条件的结构完全一致,仅需要适配对应语言的语法规则即可。
内容的提问来源于stack exchange,提问作者Khan Aaftab
相关产品推荐
相关产品推荐

