आपको find
. का उपयोग करना चाहिए , जैसे आप पहले से हैं, और एकत्रीकरण नहीं जो धीमा होगा क्योंकि इसे सभी को स्कैन करने की आवश्यकता है अधिकतम जानने के लिए _id फ़ील्ड के मान.
जैसा कि टिप्पणियों में बताया गया है कि नहीं . है खोज () और findOne () का उपयोग करने के बीच अंतर - कार्यात्मक या लालित्य-वार। वास्तव में, findOne
शेल में (और इसे लागू करने वाले ड्राइवरों में) को खोज (सीमा -1 के साथ और शेल में सुंदर प्रिंट के साथ) के रूप में परिभाषित किया गया है।
अगर आप वास्तव में के बराबर करना चाहते हैं
db.collection.find().sort({_id:-1}).limit(1).pretty()
findOne
. के रूप में आप इसे इस सिंटैक्स के साथ कर सकते हैं:
db.collection.findOne({$query:{},$orderby:{_id:-1}})