使用变量将json文件插入mongodb

Insert json file into mongodb using a variable

本文关键字:文件 插入 mongodb json 变量      更新时间:2023-09-26

我正在尝试将一个json文件插入mongodb。当我将JSON直接输入到insert语句中时,它可以正常工作。但是,当我尝试使用fs.readfile中的数据变量(相同的JSON)时,插入失败。我没有收到错误,只是现在当我使用变量而不是原始JSON时,集合中的数据。这是代码。。

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

您将文件的内容编码为UTF-8字符串,并试图将其插入数据库。在插入数据之前,您需要使用JSON.parse()将字符串解析为JSON。

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