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

सी # मोंगोडीबी जटिल वर्ग क्रमबद्धता

डेटा को MongoDB में सहेजने का तरीका यहां पाया गया:शब्दकोश-से-Bsonदस्तावेज़ रूपांतरण _t फ़ील्ड को छोड़ कर और इसे थोड़ा बढ़ा दिया तो मैंने सोचा कि पूरा समाधान साझा करूँ।

चरण #1:

अपनी कक्षा में, मैंने प्रत्येक मान के लिए 2 सदस्यों की घोषणा की:

// For the Hobbies object type:
[BsonIgnore] //ignore this value in MongoDB
public Dictionary<string, object> Hobbies { get; set; }

[JsonIgnore] //ignore this value in the response on Get requests
[BsonElement(elementName: "Hobbies")]
public BsonDocument HobbiesBson { get; set; }

/*********************************************************************/

// For the Collection object type:
[BsonIgnore] //ignore this value in MongoDB
public List<Dictionary<string, object>> Collection { get; set; }

[JsonIgnore] //ignore this value in the response on Get requests
[BsonElement(elementName: "Collection")]
public BsonArray CollectionBson { get; set; }

चरण #2

Post . के लिए मेरी WebAPI नियंत्रक विधि में

[HttpPost]
public override async Task<IActionResult> Post([FromBody] Person person)
{
    var jsonDoc = JsonConvert.SerializeObject(person.Hobbies);
    person.HobbiesBson = BsonSerializer.Deserialize<BsonDocument>(jsonDoc);

    jsonDoc = JsonConvert.SerializeObject(person.Collection);
    person.CollectionBson = BsonSerializer.Deserialize<BsonArray>(jsonDoc);

    //save
}

चरण #3

मेरे Get . में अनुरोध मैं इसे इस तरह वापस deserialize:

[HttpGet("{id?}")]
public override async Task<IActionResult> Get(string id = null)
{
    var people = //get data from mongoDB
    foreach (var person in people)
    {
        var bsonDoc = BsonExtensionMethods.ToJson(person.HobbiesBson);
        person.Hobbies = JsonConvert.DeserializeObject<Dictionary<string, object>>(bsonDoc);

        bsonDoc = BsonExtensionMethods.ToJson(person.CollectionBson);
        person.Collection = JsonConvert.DeserializeObject<List<Dictionary<string, object>>>(bsonDoc);bsonDoc);
    }
    return Ok(people);
}

इससे मेरी समस्या हल हो गई और मुझे आशा है कि यह दूसरों की भी मदद कर सकता है :-)



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. mongodb . में तिथियों के अनुसार समूह

  2. पेजेबल के साथ स्प्रिंग कस्टम क्वेरी

  3. MySQL प्रतिकृति (और अन्य) के लिए विफलता - क्या इसे स्वचालित किया जाना चाहिए?

  4. Neo4j के साथ मोंगोडब को एकीकृत करना, क्या कोई एपीआई है जो उन्हें लिंक करेगी?

  5. MongoRepository गतिशील प्रश्न