sql >> Database >  >> NoSQL >> MongoDB

Lentegegevens MongoDb:MappingMongoConverter verwijder _class

Dus hier is het verhaal:we voegen het type standaard toe als een soort hint welke klasse we eigenlijk moeten instantiëren. Omdat je een type moet invoeren om het document in te lezen via MongoTemplate hoe dan ook zijn er twee mogelijke opties:

  1. Je levert een type in waaraan het daadwerkelijk opgeslagen type kan worden toegewezen. In dat geval beschouwen we het opgeslagen type, gebruik dat voor het maken van objecten. Klassiek voorbeeld hier is het doen van polymorfe zoekopdrachten. Stel je hebt een abstracte klasse Contact en uw Person . Je zou dan kunnen zoeken naar Contact s en we moeten in wezen moeten bepaal een type om te instantiëren.
  2. Als je - aan de andere kant - een heel ander type doorgeeft, gaan we gewoon naar dat gegeven type, niet naar het type dat feitelijk in het document is opgeslagen. Dat zou uw vraag beantwoorden wat er gebeurt als u het type verplaatst.

Misschien ben je geïnteresseerd in het bekijken van dit ticket, dat een soort pluggable type mapping-strategie dekt om de type-informatie om te zetten in een echt type. Dit kan eenvoudig ruimtebesparende doeleinden dienen, omdat u misschien een lange gekwalificeerde klassenaam wilt reduceren tot een hash van een paar letters. Het zou ook complexere migratiescenario's mogelijk maken, waarbij u sleutels van volledig willekeurig type kunt vinden die door een andere datastore-client zijn geproduceerd en deze aan Java-types kunnen binden.



  1. Hoe voer ik een NOT IN-query uit in Mongo?

  2. Resultaten beperken in MongoDB maar toch de volledige telling krijgen?

  3. Meteor mongo werkt geneste array bij

  4. Meervoudig gebruik van de positionele `$`-operator om geneste arrays bij te werken