Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Error when inserting a document into MongoDB via Node.js

I'm trying to insert a document into MongoDB in Node.js. I have read from the DB successfully, and added documents via the command-line interface. However, I can't insert a document from JavaScript. If I do, I get an error:

Error: Cannot use a writeConcern without a provided callback

Here is my code:

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" });
        }
    });

I can't for the life of me figure out why I get this error.

What did I do wrong, and how should I do this instead?

like image 430
Kendall Frey Avatar asked Jan 18 '13 21:01

Kendall Frey


People also ask

Which of the following method is used to insert a document in MongoDB?

In MongoDB, the db. collection. insert() method is used to add or insert new documents into a collection in your database.

Is MongoDB compatible with node js?

Node. js can be used in database applications. One of the most popular NoSQL database is MongoDB.


1 Answers

You need to provide a callback function to your insert call so that the method can communicate any errors that occur during the insert back to you.

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

Or, if you truly don't care whether the insert succeeds or not, pass a write-concern value of 0 in the options parameter:

db.collection("test").insert({ str: "foobar" }, { w: 0 });
like image 80
JohnnyHK Avatar answered Oct 15 '22 16:10

JohnnyHK