2013-01-18 23 views
15

के माध्यम से MongoDB में दस्तावेज़ डालने में त्रुटि जब मैं Node.js. में MongoDB में एक दस्तावेज़ डालने का प्रयास कर रहा हूं। मैंने सफलतापूर्वक डीबी से पढ़ा है, और कमांड लाइन इंटरफ़ेस के माध्यम से दस्तावेज़ जोड़े हैं। हालांकि, मैं जावास्क्रिप्ट से एक दस्तावेज़ नहीं डाल सकता। अगर मैं करते हैं, मैं एक त्रुटि मिलती है:Node.js

var mongodb = require("mongodb"); 
var MongoClient = mongodb.MongoClient; 

MongoClient.connect("mongodb://localhost:27017/test", function(err, db) { 
     if (!err) { 
      db.collection("test").insert({ str: "foobar" }); 
     } 
    }); 

मैं के लिए मुझे के जीवन को समझ नहीं सकता क्यों मैं इस त्रुटि मिलती है:

Error: Cannot use a writeConcern without a provided callback

यहाँ मेरी कोड है।

मैंने क्या गलत किया, और इसके बजाय मुझे यह कैसे करना चाहिए?

उत्तर

43

आपको अपने insert कॉल पर कॉलबैक फ़ंक्शन प्रदान करने की आवश्यकता है ताकि विधि आपके द्वारा सम्मिलित दौरान होने वाली किसी भी त्रुटि को संवाद कर सके।

db.collection("test").insert({ str: "foobar" }, function (err, inserted) { 
    // check err... 
}); 

या, यदि आप वास्तव में परवाह नहीं है डालने सफल होता है या नहीं, विकल्प पैरामीटर में 0 से लिखने चिंता का विषय मान पास:

db.collection("test").insert({ str: "foobar" }, { w: 0 }); 
+2

धन्यवाद, यह काम करने लगता है। क्या आप मुझे इसके लिए प्रलेखन के लिए इंगित कर सकते हैं? मुझे मिले सभी उदाहरण नोड के लिए प्रतीत नहीं हुए थे। मुझे कोई उदाहरण नहीं मिल रहा है जो काम करता है। –

+3

आप जो मार रहे हैं वह यह है कि 'मोंगो क्लाइंट' पेश करने से पहले, सभी उदाहरण कोड आम तौर पर कनेक्शन का उपयोग करते थे जहां सुरक्षित-लिखने का तरीका डिफ़ॉल्ट रूप से बंद था, और उस स्थिति में आप कोड काम करेंगे। लेकिन 'मोंगो क्लाइंट' डिफ़ॉल्ट रूप से सुरक्षित मोड को सक्षम बनाता है। ध्यान दें कि 'insert' [docs] में उदाहरण (http://mongodb.github.com/node-mongodb-native/api-generated/collection.html#insert) नोट करता है कि यह सुरक्षित मोड का उपयोग नहीं कर रहा है। – JohnnyHK