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

MongoDB (सर्वर v 2.6.7) C# ड्राइवर 2.0 के साथ:InsertOneAsync से परिणाम कैसे प्राप्त करें

अगर आप इसे async . के अंदर कर रहे हैं विधि, तो Brduca का उत्तर काम करेगा (और बेहतर है), अन्यथा आप Wait() Task . पर InsertOneAsync . से लौटा यह सुनिश्चित करने के लिए कॉल करें कि आपका एप्लिकेशन डुप्लीकेट कुंजी अपवाद देखने के लिए पर्याप्त समय तक बना रहे:

commandsCollection.InsertOneAsync(doc).Wait();

यदि डुप्लीकेट कुंजी के कारण इंसर्ट विफल हो जाता है, तो Wait() एक AggregateException फेंक देगा जिसमें एक MongoWriteException है जिसमें डुप्लीकेट कुंजी विवरण शामिल हैं।

try
{
    commandsCollection.InsertOneAsync(doc).Wait();
}
catch(AggregateException aggEx)
{
    aggEx.Handle(x => 
    { 
        var mwx = x as MongoWriteException;
        if (mwx != null && mwx.WriteError.Category == ServerErrorCategory.DuplicateKey) 
        {
            // mwx.WriteError.Message contains the duplicate key error message
            return true; 
        }
        return false;
    });
}

इसी तरह, यदि आप await . का उपयोग कर रहे हैं , जो एक AggregateException throw फेंक देगा साथ ही।

AggregateException . की अतिरिक्त जटिलता से बचने के लिए मोंगो अपवाद को लपेटकर, आप GetAwaiter().GetResult() . पर कॉल कर सकते हैं इसके बजाय Wait() :

try
{
    commandsCollection.InsertOneAsync(doc).GetAwaiter().GetResult();
}
catch(MongoWriteException mwx)
{
    if (mwx.WriteError.Category == ServerErrorCategory.DuplicateKey) 
    {
        // mwx.WriteError.Message contains the duplicate key error message
    }
}


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. BinData () में बेस 64 के बजाय हेक्स - MongoDB

  2. स्वत:संग्रह के साथ सूची संग्रह

  3. मोंगोडब - $set और $setOnInsert . में डुप्लिकेट फ़ील्ड

  4. MongoDB संग्रह में दस्तावेज़ कब जोड़ा गया था

  5. मोंगो शेल में समय बेमेल