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

BsonRepresentation(BsonType.ObjectId) बनाम BsonId बनाम ObjectId के साथ C# में किसी संपत्ति को सजाने के बीच अंतर

1) अगर आपके पास Id, id or _id . नाम का कॉलम है , आपके द्वारा दृढ़ता से टाइप किए गए TDocument . में वर्ग (एक संग्रह में आइटम प्रकार), फिर "_id" . नामक एक कॉलम मोंगो में उत्पन्न होगा। यह उस कॉलम के लिए एक इंडेक्स भी बनाएगा। आपको एक duplicate key error मिलती है अपवाद यदि पहले से मौजूद किसी कुंजी के साथ कोई आइटम सम्मिलित करने का प्रयास कर रहा है।

public ObjectId Id { get; set; } ObjectId . के लिए टाइप जनरेटर का उपयोग करेगा और यह _id: ObjectId("57ade20771e59f422cc652d9") जैसा दिखेगा ।

public Guid _id { get; set; } "_id" : BinData(3,"s2Td7qdghkywlfMSWMPzaA==") जैसी smth उत्पन्न करने के लिए Guid जनरेटर का उपयोग करेगा ।

public int Id { get; set; } , public string id { get; set; } , public byte[] _id { get; set; } यदि निर्दिष्ट नहीं है तो प्रत्येक प्रकार के लिए डिफ़ॉल्ट का उपयोग करते हुए इंडेक्स कॉलम भी होंगे।

2) [BsonId] आपको उस इंडेक्स को किसी भी तरह से नाम देने की सुविधा देता है। [BsonId] public Guid SmthElseOtherThanId { get; set; } और [BsonId] public string StringId { get; set; } सूचकांक होंगे; public Guid SmthElseOtherThanId { get; set; } और public string StringId { get; set; } नहीं होगा। mongodb अभी भी _id का उपयोग करेगा आंतरिक रूप से।

वही तर्क, public ObjectId SmthElseOtherThanId {get; set;} बिना [BsonId] . के डेकोरेशन एक इंडेक्स कॉलम नहीं होगा।

3) [BsonRepresentation] आपको Mongo प्रकार बनाम आंतरिक .Net प्रकार के साथ तालमेल बिठाने देता है, यदि उनके बीच कोई रूपांतरण है .

[BsonId] [BsonRepresentation(BsonType.ObjectId)] public ObjectId Id { get; set; } public ObjectId Id { get; set; } .

[BsonId] [BsonRepresentation(BsonType.ObjectId)] public string Id { get; set; } हालांकि अलग है। मोंगो स्वतः ही ऑब्जेक्ट आईडी उत्पन्न करेगा, हालांकि आप .net, फ़िल्टर क्वेरी आदि में स्ट्रिंग्स का उपयोग करने में सक्षम होंगे, क्योंकि ऑब्जेक्ट आईडी और स्ट्रिंग के बीच एक रूपांतरण होता है।

[BsonId] [BsonRepresentation(BsonType.ObjectId)] public byte[] Id { get; set; } या [BsonId] [BsonRepresentation(BsonType.ObjectId)] public int Id { get; set; } एक ObjectId not a valid representation for a ByteArraySerializer / Int32Serializer के लिए मान्य प्रतिनिधित्व नहीं है। संदेश।

लेकिन [BsonId] [BsonRepresentation(BsonType.String)] public int StringId { get; set; } ठीक रहेगा।




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB - एकत्रीकरण - सरणी में अद्वितीय आइटम प्राप्त करने के लिए

  2. मोंगो जटिल छँटाई?

  3. रूबी में सीधे कच्चे मोंगोडीबी प्रश्नों को कैसे आग लगाना है?

  4. मोंगो फाइंड () फ़ंक्शन _id . को बाहर नहीं करेगा

  5. MongoDB में एक डेटाबेस को कॉपी/क्लोन करें