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

मोंगो सी # चालक के साथ अपरिवर्तनीय मूल्य प्रकारों को क्रमबद्ध करना

मुझे लगता है कि आपका मतलब ईमेल एड्रेस क्लास कुछ इस तरह से है:

[BsonSerializer(typeof(EmailAddressSerializer))]
public class EmailAddress
{
    private string _value;

    public EmailAddress(string value)
    {
        _value = value;
    }

    public string Value
    {
        get { return _value; }
    }
}

मैंने ईमेल एड्रेस क्लास को कस्टम सीरिएलाइज़र से जोड़ने के लिए एक विशेषता का उपयोग किया है, जिसे इस तरह कार्यान्वित किया जा सकता है:

public class EmailAddressSerializer : BsonBaseSerializer
{
    public override object Deserialize(BsonReader bsonReader, Type nominalType, Type actualType, IBsonSerializationOptions options)
    {
        if (bsonReader.GetCurrentBsonType() == BsonType.Null)
        {
            bsonReader.ReadNull();
            return null;
        }
        else
        {
            var value = bsonReader.ReadString();
            return new EmailAddress(value);
        }
    }

    public override void Serialize(BsonWriter bsonWriter, Type nominalType, object value, IBsonSerializationOptions options)
    {
        if (value == null)
        {
            bsonWriter.WriteNull();
        }
        else
        {
            var emailAddress = (EmailAddress)value;
            bsonWriter.WriteString(emailAddress.Value);
        }
    }
}

आप ईमेल पते को मूल दस्तावेज़ के रूप में क्रमबद्ध नहीं कर सकते (क्योंकि यह दस्तावेज़ नहीं है...) लेकिन आप किसी अन्य दस्तावेज़ में एम्बेडेड ईमेल एड्रेस का उपयोग कर सकते हैं। उदाहरण के लिए:

public class Person
{
    public int Id { get; set; }
    public EmailAddress EmailAddress { get; set; }
}

जिसे आप निम्न जैसे कोड का उपयोग करके परीक्षण कर सकते हैं:

var person = new Person { Id = 1, EmailAddress = new EmailAddress("[email protected]") };
var json = person.ToJson();
var rehyrdated = BsonSerializer.Deserialize<Person>(json);

परिणामी JSON/BSON दस्तावेज़ है:

{ "_id" : 1, "EmailAddress" : "[email protected]" }


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. लिक्विबेस-मोंगोडीबी-स्प्रिंग-बूट का उपयोग कैसे करें

  2. एकत्रीकरण पाइपलाइन, MapReduce या runCommand में संग्रहीत JavaScript फ़ंक्शन का उपयोग करना

  3. अस्थायी डीबी में क्वेरी आउटपुट कैसे स्टोर करें?

  4. mongoexport का उपयोग करके सॉर्ट किए गए डेटा को कैसे निर्यात करें?

  5. संग्रह ए जिसमें बी के साथ एक विदेशी है, बी में संग्रह सी के साथ एक विदेशी है, मैं एक विदेशी को ए से संग्रह सी में कैसे ला सकता हूं? (कुल)