java - MongoDB查询并选择内部对象
问题描述
我想查询内部对象并从 mongoddb 文档中只选择过滤的内部对象。
考虑下面的 mongodb 文档。
{
"schools": [
{
"name": "ABC",
"students": [
{
"name": "ABC 1",
"class": 1
},
{
"name": "ABC 2",
"class": 2
},
{
"name": "ABC 3",
"class": 1
}
]
},
{
"name": "XYZ",
"students": [
{
"name": "XYZ 1",
"class": 1
},
{
"name": "XYZ 2",
"class": 2
}
]
}
]
}
我只想选择 1 班的学生。预期结果 json 如下。
{
"school": {
"name": "ABC",
"students": [
{
"name": "ABC 1",
"class": 1
},
{
"name": "ABC 3",
"class": 1
}
]
},
"school": {
"name": "XYZ",
"students": [
{
"name": "XYZ 1",
"class": 1
}
]
}
}
即使低于结果对我来说也很好。
{
"students": [
{
"name": "ABC 1",
"class": 1
},
{
"name": "ABC 3",
"class": 1
},
{
"name": "XYZ 1",
"class": 1
}
]
}
请帮我完成这件事。如果可以提供 mongodb 查询真的很有帮助。我在我的应用程序中使用 mongodb 和 spring 数据。
解决方案
您可以搜索 mongo db 数组嵌套记录搜索。示例代码在这里。文件在这里。
db.your_collection_name.find({'school.student.class':1})
如果您只希望学生为您的结果做平面图。这是 mongodb 中 flatmap 的文档
推荐阅读
- xamarin - 为什么我不能与片段中的任何视图进行交互?
- java - 如何返回到 oracle.ucp.jdbc.PoolDataSource 的连接?
- javascript - 获取部分 URL 路径并将值存储在字符串中
- python - 我不知道为什么,当我安装 matplotlib 时它不能
- mysql - 唯一的绝对 MySQL 价值
- python - 无法解释递归
- java - 如何用 Spring 解锁 Liquibase 锁?
- python - 一种确定代码是否在 IDLE 中运行的方法?
- python - 在 python 中未检测到 Chromedriver
- google-apps-script - 添加新行时,如何阻止静态单元格引用发生变化?