mongo数据集合属性中存在点号(.)的解决方法

  • A+
所属分类:MongoDB

前言

MongoDB是面向聚拢存储的文档型数据库,其涉及到的根本观点与关系型数据库比有所分歧。本文主要先容关于mongo数据聚拢属性存在点号(.)的相关内容,下面话不多说了,来一路看看具体的先容吧

根本常识点:

1.彷佛mongo3.6之前不容许插入带点(.)或美元符号($)的键,然则当我使用mongoimport对象导入包括点的JSON文件时,它事情正常。

2.在使用spring-data-mongodb处置mongodb的增编削查时会经由过程一个MappingMongoConverter(Document和Modle转换类)转换数据

3.详细对点号的转换在DBObjectAccessor(spring-data-mongodb-1.10.13)或者DocumentAccessor(spring-data-mongodb-2.0.9),如下:

4.点号在mongodb中有子聚拢的寄义

例如查询A.B属性:查询的是聚拢中A对应子聚拢中的属性B的值,并不是查询聚拢中A.B的属性  

问题描写:文档在数据库中的样子:

是以在Model中使用@Field("大众A.B"大众)查询不出聚拢中的"大众A.B"大众的值

5.办理办法:

查阅多方材料有以下几点领会:点号在MongoDB中可以插入应该开端于3.6版本,官方文档固然说可以支撑点号,然则第三方驱动、spring-data-mongodb并没有支撑,然则由于一开端项目已经使用了spring-data-mongodb难以替换,以是就想到笼罩转换办法。

怎么笼罩spring-data-mongodb包中的文件?

新建一个和DBObjectAccessor转换文件一样的目次,从新建DBObjectAccessor类复制代码自界说改动,编译之后或优先使用新建的类。

 注意:只管即便不要改动put办法,应为低版本的MongoDB本不支撑点号,插入会报错

 当然最好不要产生属性中有点号的环境。

总结

以上便是这篇文章的全体内容了,愿望本文的内容对年夜家的进修或者事情具有必定的参考进修代价,假如有疑问年夜家可以留言交流,谢谢年夜家对剧本之家的支撑。

您可能感兴致的文章:

MongoDB在分歧主机间复制数据库和聚拢的教程MongoDB常用操作敕令年夜全MongoDB各类查询操作详解MongoDB数据库插入、更新和删除操作详解mongodb 数据库操作--备份 还原 导出 导入MongoDB插入数据的3种办法MongoDB查询操作限定返回字段的办法mongodb 实现长途衔接MongoDB中的一些坑(最好不要用)

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: