Reputation: 202
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
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
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
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