Insertar el archivo json en mongodb usando una variable

Estoy tratando de insertar un archivo json en mongodb. Cuando ingreso el JSON directamente en la statement de inserción, funciona bien. Sin embargo, cuando bash usar la variable de datos de fs.readfile (el mismo JSON), la inserción falla. No obtengo un error, solo ahora los datos en la colección cuando uso una variable en lugar del JSON en bruto. Aquí está el código ..

var MongoClient = require('mongodb').MongoClient , format = require('util').format; MongoClient.connect('mongodb://127.0.0.1:27017/test', function(err, db) { if(err) throw err; var fs = require('fs'); var mydocuments = fs.readFile('testNames.json', 'utf8', function (err, data) { var collection = db.collection('contactCollection'); collection.insert(data, function(err, docs) { //This insert Fails collection.count(function(err, count) { console.log(format("count = %s", count)); console.log("[" + data + "]" ); db.close(); }); }); var MongoClient = require('mongodb').MongoClient , format = require('util').format; MongoClient.connect('mongodb://127.0.0.1:27017/test', function(err, db) { if(err) throw err; var fs = require('fs'); var mydocuments = fs.readFile('testNames.json', 'utf8', function (err, data) { var collection = db.collection('contactCollection'); collection.insert({firstname: "Bill"}, function(err, docs) { //This insert succeeds collection.count(function(err, count) { console.log(format("count = %s", count)); console.log("[" + data + "]" ); db.close(); }); }); 

Está codificando el contenido del archivo como una cadena UTF-8 y está intentando insertarlo en la base de datos. JSON.parse() analizar la cadena como JSON utilizando JSON.parse() antes de insertar los datos.

 var fs = require('fs'); var mydocuments = fs.readFile('testNames.json', 'utf8', function (err, data) { var collection = db.collection('contactCollection'); collection.insert(JSON.parse(data), function(err, docs) { // Should succeed collection.count(function(err, count) { console.log(format("count = %s", count)); console.log("[" + data + "]" ); db.close(); }); });