2011-08-11 17 views
32

का उपयोग कैसे करें मैं नीचे स्कीमा (क्षमा याचना है कि यह coffeescript में है)नेवला findOne

Schema = mongoose.Schema 

AuthS = new Schema 
    auth: {type: String, unique: true} 
    nick: String 
    time: Date 
Auth = mongoose.model 'Auth', AuthS 

मैं बस एक रिकॉर्ड है जो मेरी डेटाबेस में निश्चित रूप से है ठीक करने के लिए करना चाहते हैं:

Auth.findOne({nick: 'noname'}, function(obj) { console.log(obj); }); 

दुर्भाग्य से यह हमेशा null लॉग करता है। मोंगो खोल में db.auths.findOne({nick: 'noname'}) हमेशा एक मान देता है। क्या हो रहा है?

+14

कॉफीस्क्रिप्ट में होने के लिए क्षमा मांगने की आवश्यकता नहीं है; बस इसे 'जावास्क्रिप्ट' के साथ टैग न करें। –

उत्तर

63

समस्या पाया जाता है, बजाय function(err,obj) उपयोग करने की आवश्यकता:

console.log(arguments); // would have shown you [0] null, [1] yourResult 

यह हमेशा उत्पादन सब:

Auth.findOne({nick: 'noname'}, function(err,obj) { console.log(obj); }); 
+1

जब मैं इस तरह 'findOne' का उपयोग करता हूं तो मुझे अपना डेटा सफलतापूर्वक मिलता है लेकिन' obj' 'दस्तावेज़' ऑब्जेक्ट नहीं है। जब मैं 'obj.nick' और 'obj [nick]' कोशिश करता हूं, तो मुझे अपरिभाषित नहीं होता है। जब मैं 'obj.get ('निक') आज़माता हूं, 'मुझे ऑब्जेक्ट मिलता है कि विधि प्राप्त नहीं होती है। मैंने कई JSON रूपांतरणों की कोशिश की और 'doc = new document (obj) 'बना दिया। मैंने 'doc.toObject (obj)' और 'doc.set (obj)' की कोशिश की; –

+2

@ जोनाथनकिट्टककोविक्स मुझे लगता है कि यदि आप obj.toObject() करते हैं जो आपको वह चीज़ देगा जो आप खोज रहे थे। – Guy

+5

जब ऑपरेशन सफलतापूर्वक निष्पादित करता है (गलती शून्य है), लेकिन कोई मिलान नहीं है, दस्तावेज़ भी शून्य होगा। –

2

आप अंतर्निहित "तर्कों" के साथ console.log वस्तु का उपयोग कर विचार करना चाह सकते आपके तर्कों के बावजूद, आपके पास कितने तर्क हैं।

संबंधित मुद्दे