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

स्प्रिंग डेटा मोंगोडब क्वेरी स्ट्रिंग को ऑब्जेक्ट आईडी में स्वचालित रूप से परिवर्तित करती है

ऐसा लगता है कि समस्या को इस तरह वर्णित किया जा सकता है:यदि आप ऑब्जेक्ट आईडी के स्थान पर अपनी कक्षाओं में स्ट्रिंग का उपयोग करते हैं, यदि आप उन आईडी को अन्य दस्तावेज़ों (और एम्बेडेड दस्तावेज़) में संदर्भ (कोई डीबीआरएफ) के रूप में उपयोग करना चाहते हैं, तो उन्हें धक्का दिया जाता है स्ट्रिंग के रूप में (यह ठीक है क्योंकि वे स्ट्रिंग्स हैं)। यह ठीक है क्योंकि स्प्रिंग डेटा उन्हें फिर से ऑब्जेक्टिड पर मैप कर सकता है, लेकिन यह ठीक नहीं है यदि आप मेरे द्वारा बताए गए प्रश्न की तरह करते हैं; तुलना में फ़ील्ड को ऑब्जेक्टिड में बदल दिया जाता है (इस मामले में $ne ऑपरेटर) लेकिन एम्बेडेड दस्तावेज़ में एक स्ट्रिंग के रूप में माना जाता है। तो, समाप्त करने के लिए, मेरी राय में $ne ऑपरेटर को इस मामले में क्षेत्र को एक स्ट्रिंग पर विचार करना चाहिए।

मेरा समाधान स्ट्रिंग को ऑब्जेक्टिड के रूप में उन दस्तावेज़ों में संग्रहीत करने के लिए एक कस्टम कनवर्टर लिखना था जहां आईडी एक संदर्भ है

public class VoteWriteConverter implements Converter<Vote, DBObject> {

  @Override
  public DBObject convert(Vote vote) {
    DBObject dbo = new BasicDBObject();
    dbo.put("userid", new ObjectId(vote.getUserid()));
    dbo.put("value", vote.getValue());
    return dbo;
  }
}



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB में क्वेरी में अधिकतम कितने पैरामीटर पास किए गए हैं?

  2. MongoDB में बहु-दस्तावेज़ ACID लेनदेन का अवलोकन और उनका उपयोग कैसे करें

  3. मौजूदा उपयोगकर्ता के लिए MongoDB में पासवर्ड बदलना

  4. MongoDB discord.py का उपयोग करके रिमाइंडर कमांड

  5. उप सरणी के अंदर मोंगोडब अपडेट ऑपरेशन