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

Jaki jest najlepszy sposób radzenia sobie z kluczami kompilacji podczas korzystania z Salat z MongoDB?

główny programista Salat tutaj.

Jak zasugerował Milan, utwórz klasę przypadków dla swojego klucza złożonego:

case class FooKey(someRelatedId: String, email: String)

case class Foo(@Key("_id") naturalKey: FooKey) {

  // use @Persist if you want these fields serialized verbatim to Mongo - see https://github.com/novus/salat/wiki/Annotations for details
  @Persist val email =  naturalKey.email
  @Persist val someRelatedId = naturalKey.someRelatedId

}

object FooDAO extends SalatDAO[Foo, FooKey](collection = /*  some Mongo coll */ )

Jeśli sprzeciwisz się „_id” jako nazwie pola, możesz użyć globalnego zastąpienia w kontekście, aby zmienić odwzorowanie „_id” na „naturalKey” lub podać ad hoc nadpisania @Key dla każdego obiektu.

Osobiście nie lubię nadawać _id innej nazwy w twoich modelach, ponieważ wtedy twoje zapytania Mongo muszą używać zserializowanego klucza "_id", podczas gdy cała logika biznesowa musi używać nazwy pola klasy przypadku ("naturalKey" lub cokolwiek), ale YMMV .

PS Nasza lista mailingowa znajduje się pod adresem http://groups.google.com/group/scala-salat - Zobaczę Twoje pytanie szybciej niż Stack Overflow.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Czy można mieć stan w populacji mangusty?

  2. Jak sprawić, by ewa zapisywała do różnych baz danych na podstawie różnych parametrów URL i wartości żądań?

  3. Agreguj wiele tablic w jedną ogromną tablicę za pomocą MongoDB

  4. Czy mongo może zwrócić dokumenty z pustymi/brakującymi polami na końcu w kolejności asc?

  5. jak używać konfiguracji Spark-submit:jars,packages:w trybie klastra?