varun kumar dutta
varun kumar dutta

Reputation: 202

How to fetch data from mongodb and convert it to json object in node.js?

I want to fetch the data from mongo db and store it in a json object in node.js. The purpose is to manipulate that data which I think is quite simple if its a json objcet. Below is the code I am using:

var MongoClient = require('mongodb').MongoClient;
var ObjectId = require('mongodb').ObjectID;
var url = 'mongodb://localhost:27017/MyCollection';

var data;

var findRestaurants = function (db, callback) {
    var cursor = db.collection('demographicdetails').find().limit(10);

    cursor.each(function (err, doc) {

        if (doc != null) {
            console.dir(doc);

        } else {
            callback();
        }
    });
};

MongoClient.connect(url, function (err, db) {

    findRestaurants(db, function () {
        db.close();
    });
});

From above code, I am able to fetch the data from mongo db and console.dir(doc) shows me the data.

What I want to do is something like this:

  data = doc;
 data.forEach(function (eval) {
     //Manipulating eval
 });

Please suggest. Thanks in advance!

Upvotes: 1

Views: 13024

Answers (3)

karthick Ramanathan
karthick Ramanathan

Reputation: 910

use toArray in mongodb client , mongodb always give json format

db.collection('demographicdetails').find().limit(10).toArray(function (err, aum) { 

aum.forEach(function (err, doc) {

        if (doc != null) {
            console.dir(doc);

        } else {
            callback();
        }
    });
})

Upvotes: 0

Dhanush Gopinath
Dhanush Gopinath

Reputation: 5739

MongoDB uses JSON/BSON internally to store the data. So any query you make you should get a JSON object. I use MongooseJS as the MongoDB library, which gives you back a JSON after querying.

Upvotes: 1

Odonno
Odonno

Reputation: 419

I recommend you to use the toObject function.

cursor.each(function (err, doc) {

    if (doc != null) {
        console.dir(doc);
        var restaurant = doc.toObject(); // use restaurant object
    } else {
        callback();
    }
});

Upvotes: 2

Related Questions