TL;DR :
यदि संचालन धीमा है, तो async ड्राइवर का उपयोग करें, या अधिकांश मामलों में नियमित ड्राइवर का उपयोग करें। आपको कोर ड्राइवर का उपयोग नहीं करना चाहिए।
MongoDB नियमित ड्राइवर :
सामान्य ड्राइवर जिसका उपयोग आप दस्तावेज़ों को खोजने, बनाने, पढ़ने, अद्यतन करने और हटाने के लिए कर सकते हैं। find(...)
, updateMany(...)
, deleteMany(...)
और इसी तरह के तरीके तब तक लटके रहेंगे जब तक कि परिणाम वापस नहीं किया जाता है या ऑपरेशन नहीं किया जाता है (तुल्यकालिक व्यवहार)। यह वह ड्राइवर है जिसका अधिकांश प्रोग्राम उपयोग करता है और अधिकांश मामलों में अच्छा होता है।
यहाँ एकल दस्तावेज़ सम्मिलित करने का एक उदाहरण दिया गया है:
collection.insertOne(doc);
//Do something here.
System.out.println("Inserted!")
MongoDB Async ड्राइवर :
एक अन्य प्रकार का ड्राइवर जिसका उपयोग आप दस्तावेज़ों को खोजने, बनाने, पढ़ने, अद्यतन करने और हटाने के लिए कर सकते हैं। यह ड्राइवर नियमित ड्राइवर की तुलना में समान तरीके प्रदान करता है (find(...)
, updateMany(...)
, deleteMany(...)
, आदि।)।
नियमित ड्राइवर के साथ अंतर यह है कि मुख्य थ्रेड हैंग नहीं होगा क्योंकि async ड्राइवर परिणाम को कॉलबैक (अतुल्यकालिक व्यवहार)। इस ड्राइवर का उपयोग तब किया जाता है जब संचालन में लंबा समय लग सकता है (बहुत सारे डेटा से गुजरना पड़ता है, उच्च विलंबता, अनइंडेक्स किए गए फ़ील्ड पर क्वेरी, आदि) और आप कई थ्रेड्स को प्रबंधित नहीं करना चाहते हैं।
एकल दस्तावेज़ सम्मिलित करते समय कॉलबैक का एक उदाहरण यहां दिया गया है:
collection.insertOne(doc, new SingleResultCallback<Void>() {
@Override
public void onResult(final Void result, final Throwable t) {
//Do something here.
System.out.println("Inserted!");
}
});
// Do something to show that the Document was not inserted yet.
System.out.println("Inserting...")
अधिक जानकारी के लिए पढ़ें यह ।
MongoDB कोर ड्राइवर
नियमित और async ड्राइवरों की आधार परत। इसमें नियमित और एसिंक्स ड्राइवरों के लिए सामान्य सभी संचालन करने के लिए निम्न-स्तरीय विधियां शामिल हैं। जब तक आप MongoDB के लिए एक नया API / ड्राइवर नहीं बना रहे हैं, तब तक आपको कोर ड्राइवर का उपयोग नहीं करना चाहिए।