MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

मोंगोडीबी के साथ सलात का उपयोग करते समय कंपोजिट कुंजी से निपटने का सबसे अच्छा तरीका क्या है?

मुख्य सलात डेवलपर यहाँ।

जैसे मिलान ने सुझाव दिया, अपनी समग्र कुंजी के लिए केस क्लास बनाएं:

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 */ )

यदि आप फ़ील्ड नाम के रूप में "_id" पर आपत्ति करते हैं, तो आप "_id" को "naturalKey" में रीमैप करने के लिए संदर्भ में वैश्विक ओवरराइड का उपयोग कर सकते हैं, या प्रत्येक ऑब्जेक्ट पर तदर्थ @Key ओवरराइड की आपूर्ति कर सकते हैं।

मैं व्यक्तिगत रूप से आपके मॉडल में _id को एक अलग नाम देना पसंद नहीं करता क्योंकि तब आपके मोंगो प्रश्नों को क्रमबद्ध कुंजी "_id" का उपयोग करना चाहिए, जबकि आपके सभी व्यावसायिक तर्कों को केस क्लास फ़ील्ड नाम ("नेचुरलकी" या जो कुछ भी) का उपयोग करना चाहिए, लेकिन वाईएमएमवी .

पी.एस. हमारी मेलिंग सूची http://groups.google.com/group/scala-salat<पर है /ए> - मैं स्टैक ओवरफ़्लो की तुलना में आपका प्रश्न वहां जल्दी देखूंगा।




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. एक-एक और एक-अनेक संदर्भों को हटाना - नेवला

  2. मोंगो से स्ट्रिंग के रूप में बिनडाटा यूयूआईडी प्राप्त करें

  3. पायथन और मोंगोडीबी डेटाबेस विकास

  4. मोंगोडब में सीमित प्रविष्टियां

  5. mongodb . में $group के साथ एग्रीगेट का उपयोग करें