将Json文件导入Mongoose

时间:2016-08-25 14:00:28

标签: json node.js mongodb mongoose

我需要将JSON文件导入数据库Mongoose。这应该是应该每天运行的脚本。

我的JSON如下:

[
 {
   "grant_title": "name SRL",
   "id": "30579843531",
   "total_amount": "551954"
},{
   "grant_title": "AADI CAPIF ASOCIACION CIVIL",
   "id": "30574449967",
   "total_amount": "37050"
},{
   "grant_title": "LA CAMPAÑOLA S.A",
   "id": "23311183419",
   "total_amount": "139292"
  }
]

我需要将这些信息存储在数据库中。

这应该是一个脚本NodeJS(快递)。请说清楚,因为我是初学者。

1 个答案:

答案 0 :(得分:5)

让我们逐渐采取这种做法。首先,您需要创建一个CRON作业,或者使用NodeJS调度程序(如agenda)以一定的时间间隔执行您的函数。

现在......在您的函数内部,您需要将JSON文件加载到NodeJS中。

var json = require('/path/to/file.json');

最后......使用insertMany在您的集合中进行批量插入。

db.collectionName.insertMany(json, function(err,result) {
   if (err) {
     // handle error
   } else {
     // handle success
   }
});

编辑:以下是使用NodeJS中的议程每天上午11:30运行程序的示例

var Agenda = require('agenda');

startScheduler = function() {
    // Set the scheduler utilizing Agenda
    var agenda = new Agenda({db: {address: 'url/to/database'}});

    agenda.define('RUN AT 1130 AM', function(job, done) {
        // your function goes here...
        done();
    });

    agenda.on('ready', function() {
        // CRON SYNTAX
        // * * * * * *
        // Minute / Hour / Day / Month / Day of week (0-6) Sunday-Saturday
        agenda.every('30 11 * * *', 'RUN AT 1130 AM'); // Run daily at 11:30 AM

        agenda.start();
    });
};

startScheduler();