MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

nazwa pola ClassName jest wstawiana do mongodb przez morphia

Możesz jawnie wyłączyć className atrybut:@Entity(noClassnameStored = true)

Generalnie tłumię atrybut, jeśli istnieje jedna klasa encji. Jeśli tworzę podklasę mojej encji, wyraźnie ją włączam (co jest domyślne, ale dla pewności).

Jeśli się nie mylę, Morphia jest wystarczająco sprytna, aby odgadnąć poprawną podklasę na podstawie właściwości, nawet jeśli nie ma className (na podstawie refleksji). Więc jeśli masz atrybut mongoKnowledge w Twojej podklasie Programista osoby i twoja podklasa menedżer go nie ma, Morphia będzie wiedziała, że ​​dokumenty zawierające mongoKnowledge musi należeć do klasy Programista . A więc ściśle mówiąc className jest wymagane tylko wtedy, gdy podklasy mają te same atrybuty; jednak nie polegałbym na tym zbytnio.

Nie próbowałem zmieniać nazw klas jednostek, ale prawdopodobnie spowoduje to problemy. Istnieje od dawna problem z dostarczeniem @Polimorphic adnotację i naprawić ją razem z tym. Zobacz https://code.google.com/p/morphia/issues/detail?id=22



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Najlepsze praktyki dotyczące bezpieczeństwa MongoDB

  2. Błąd Node.js:Nie można znaleźć modułu „mongoose”

  3. Agregacja MongoDB w pętli zwrotnej

  4. MongoDB $in Operator potoku agregacji

  5. MongoDB/NoSQL:przechowywanie historii zmian dokumentów