前提
最近单位需要用mongoDB存储文档结构的数据,所以学习一波
总结
关于结构动态化的数据
因为没有办法保证结构,所以这次使用MongoDB我没有采用bean的方式进行存储,为了保证动态化结构,添加进文档的时候使其JSON化即可
如何在数组属性中添加内容
如上图,添加lawsList_Content
,collectionName为lawsRegulationsMenu_table
1 | Query query = new Query(Criteria.where("_id").is(id).and("lawsList_Array.lawsListNo").is(lawsListNo)); |
查询嵌套数组的信息
如上图,需要根据lawsList_Array
数组中lawsListParentId
字段去确定查找范围,并分页
1 | Aggregation agg = Aggregation.newAggregation( |
嵌套内部更新
1 | Query query = new Query(Criteria.where("lawsListNo").is(lawsListNo)); |
根据子节点查出一条完整的链路直到根节点
1 | Aggregation aggregation = Aggregation.newAggregation( |
mongoDB的导入和导出
首先需要从官网下载MongoDB Command Line Database Tools Download
导入和导出工具
- 导出命令
1 | ./mongoexport -h ip:port -u 账户 -p 密码 -d db库名称 -c 集合名称 --type json -o XXX.json |
- 导入命令
1 | ./mongoimport -h ip:port -u 账户 -p 密码 -d admin -c 集合名称 --type=json --file XXX.json |
账号密码设置
1 | docker exec -it mongo-dev mongo admin |