MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Dati di primavera MongoDb:MappingMongoConverter remove _class

Quindi ecco la storia:aggiungiamo il tipo per impostazione predefinita come una sorta di suggerimento su quale classe istanziare effettivamente. Dato che devi inserire un tipo in cui leggere il documento tramite MongoTemplate comunque ci sono due opzioni possibili:

  1. Consegni un tipo a cui può essere assegnato il tipo effettivamente memorizzato. In tal caso consideriamo il tipo memorizzato, lo utilizziamo per la creazione dell'oggetto. L'esempio classico qui sta facendo query polimorfiche. Supponiamo di avere una classe astratta Contact e la tua Person . Puoi quindi eseguire una query per Contact se essenzialmente dobbiamo determinare un tipo di cui creare un'istanza.
  2. Se - d'altra parte - passi in un tipo completamente diverso, faremmo semplicemente il marshalling in quel dato tipo, non in quello effettivamente memorizzato nel documento. Ciò coprirebbe la tua domanda su cosa succede se sposti il ​​tipo.

Potresti essere interessato a guardare questo ticket che copre una sorta di strategia di mappatura del tipo collegabile per trasformare le informazioni sul tipo in un tipo reale. Questo può servire semplicemente a risparmiare spazio poiché potresti voler ridurre un nome di classe qualificato lungo a un hash di poche lettere. Consentirebbe anche scenari di migrazione più complessi in cui potresti trovare chiavi di tipo completamente arbitrarie prodotte da un altro client del datastore e associarle a tipi Java.