2011-04-26 7 views
17

मैं websodeets का उपयोग कर क्लाइंट को node.js/MongoDB इंस्टेंस से डेटा स्ट्रीम करने की कोशिश कर रहा हूं। यह सब ठीक काम कर रहा है।मोंगोडीबी से अंतिम दस्तावेज़ की पहचान करें() परिणाम

लेकिन परिणाम में अंतिम दस्तावेज़ की पहचान कैसे करें? मैं node.js. से MongoDB से कनेक्ट करने के लिए node-mongodb-native का उपयोग कर रहा हूँ

एक सरल उदाहरण:

collection.find({}, {}, function(err, cursor) { 
    if (err) sys.puts(err.message); 

    cursor.each(function(err, doc) { 
    client.send(doc); 
    });     
}); 
+0

यह डीबी, उदा से दस्तावेजों स्ट्रीमिंग के लिए सबसे अच्छा तरीका नहीं हो सकता है। क्या होगा यदि दस्तावेज़ों को तेज़ी से सम्मिलित किया गया है, तो आप उन्हें इस तरह से पूछ सकते हैं? Http://docs.mongodb.org/manual/tutorial/create-tailable-cursor/ –

उत्तर

28

MongoDB objectId के बाद से contatins निर्माण तिथि आप, आईडी द्वारा सॉर्ट कर सकते हैं उतरते और उसके बाद सीमा का उपयोग (1):

db.collection.find().sort({ _id : -1 }).limit(1); 

नोट: मैं से परिचित नहीं हूँ node.js सब पर, उपरोक्त आदेश mongo shell कमांड है और मुझे लगता है कि आप इसे node.js. पर आसानी से लिख सकते हैं।

+1

यह तब नहीं है जब वस्तुओं को एक सेकंड से अधिक बार बनाया जाता है, क्योंकि ऑब्जेक्टआईडी में 4-बाइट मान ** सेकंड का प्रतिनिधित्व करता है ** यूनिक्स युग के बाद से। –

+2

@EddieJamsession सिद्धांत में हाँ, लेकिन क्या आपने इसका परीक्षण किया है? –

+0

db.collection.find()। सीमा (1) .sort ({_id: -1}); // अभी मैंने परीक्षण किया है .. क्रम अंतिम विधि होना चाहिए। –

1

कहें कि मेरे पास कंपनियां संग्रह हैं। स्निपेट के नीचे मुझे संग्रह में अंतिम दस्तावेज़ देता है।

db.companies.find ({}, {"_ id": 1}) छोड़ें (db.companies.find()। गिनती() - 1);

कोड _id पर भरोसा नहीं कर सकता है क्योंकि यह उपयोगकर्ता द्वारा निर्धारित मूल्य होने पर हमेशा एक विशिष्ट पैटर्न पर नहीं हो सकता है।

0

उपयोग प्रकार और सीमा, आप कर्सर का उपयोग करना चाहते हैं:

var last = null; 
var findCursor = collection.find({}).cursor(); 
findCursor.on("data", function(data) { 
    last = data; 
    ... 
}); 
findCursor.on("end", function(data) { 
    // last result in last 
    .... 
}); 
संबंधित मुद्दे