sql >> Base de Datos >  >> NoSQL >> MongoDB

Spring data MongoDb:MappingMongoConverter eliminar _class

Así que aquí está la historia:agregamos el tipo por defecto como una especie de pista de qué clase instanciar en realidad. Como debe canalizar un tipo para leer el documento a través de MongoTemplate de todos modos hay dos opciones posibles:

  1. Usted entrega un tipo al que se puede asignar el tipo almacenado real. En ese caso, consideramos el tipo almacenado, utilícelo para la creación de objetos. El ejemplo clásico aquí es hacer consultas polimórficas. Suponga que tiene una clase abstracta Contact y tu Person . A continuación, puede consultar Contact s y esencialmente tenemos que determinar un tipo para instanciar.
  2. Si usted, por otro lado, pasa un tipo completamente diferente, simplemente nos ordenaríamos en ese tipo dado, no en el que está almacenado en el documento en realidad. Eso cubriría su pregunta de qué sucede si mueve el tipo.

Es posible que le interese ver este ticket que cubre algún tipo de estrategia de mapeo de tipo conectable para convertir la información de tipo en un tipo real. Esto puede servir simplemente para ahorrar espacio, ya que es posible que desee reducir un nombre de clase calificado largo a un hash de unas pocas letras. También permitiría escenarios de migración más complejos en los que podría encontrar claves de tipo completamente arbitrarias producidas por otro cliente de almacén de datos y vincularlas a tipos de Java.