使用Javascript/Node.js在代码内执行mongoimport

问题描述:

node.js/javascript中是否有任何库允许个人在代码中使用mongoimport使用Javascript/Node.js在代码内执行mongoimport

据我的理解,mongoimport有点像.exe,你必须先执行它才能使用它的文本输入环境。

是否有可能在我的代码中执行mongoimport,然后解析我的代码中直接需要的任何命令?

我当前算法包括:

fs.appendFile('log.txt',JSON.stringify(obj, null, 2)); 

obj是一个对象,它规定了什么功能,以解析成JSON.stringify与node.js的的res方法(其请求的HTTP响应)

var obj = {}; 
obj.url = hostNames[i]; 
obj.statusCode = res.statusCode; 
obj.headers = res.headers; 

然后我使用mongoimport将这个JSON文档导入到我的MongoDB中。

mongoimport --host localhost -db scrapeapp -collection scrape --file log.txt --jsonArray

这种方法显然是低效率的。我想在一个去做所有这些步骤。

帮助表示赞赏

+0

你看过MongoDB node.js驱动吗?如果你想直接从node.js服务到MongoDB,这就是你想要使用的。文档在这里:http://docs.mongodb.org/ecosystem/drivers/node-js/ – 2013-03-15 16:24:25

+0

为了扩展詹姆斯所说的话,我认为你对mongoimport的用途有些误解。您与mongodb的大多数交互都将通过驱动程序进行。该驱动程序允许您通过特定语言(在本例中为javascript)插入,更新和删除数据库中的文档(对象)。 Mongoimport不应该用于数据库的正常插入,它主要用于导入从其他数据源(如其他数据库或应用程序)导出的数据。 – ACE 2013-03-15 17:50:52

+0

你说得对。我目前对使用MongoDB有误解。 我目前正在从几个(千个)网站上抓取标题,然后我会在几个月的时间内进行分析。我将改变我的算法来通过头来做一个insert()头,而不是进行导入。你怎么看? db.scrape.insert(JSON.stringify(OBJ,NULL,2)); – theGreenCabbage 2013-03-18 14:27:58

我绝不是一个节点专家 - 但如果你现有的JSON文件,你可以在节点的shell命令描述here或以各种answers执行mongoimport。

+0

他说他知道这一点。他问的是如何在JavaScript中代替mongo shell来做'mongoimport'。 – Benny 2015-06-08 18:42:57

+0

他问“是否可以在我的代码中执行mongoimport”。 我链接到的第一篇文章标题为“使用Node.js执行Unix命令” - 从技术上讲,这是可行的。但我意识到,这可能不是他在效率方面想到的。 – thomers 2015-06-09 18:13:04

这是我要做的事在我的代码

let exec = require('child_process').exec 
let command = 'mongoimport -d database -c collection --file import.json' 
exec(command, (err, stdout, stderr) => { 
    // check for errors or if it was succesfuly 
    cb() 
}) 

我执行的是mongoimport命令,然后我通过CB接下来的程序代码可以接触,或者,如果你不使用异步风格,你可以与child_process.execSync(command[,options])同步