使用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
这种方法显然是低效率的。我想在一个去做所有这些步骤。
帮助表示赞赏
答
这是我要做的事在我的代码
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])
同步
你看过MongoDB node.js驱动吗?如果你想直接从node.js服务到MongoDB,这就是你想要使用的。文档在这里:http://docs.mongodb.org/ecosystem/drivers/node-js/ – 2013-03-15 16:24:25
为了扩展詹姆斯所说的话,我认为你对mongoimport的用途有些误解。您与mongodb的大多数交互都将通过驱动程序进行。该驱动程序允许您通过特定语言(在本例中为javascript)插入,更新和删除数据库中的文档(对象)。 Mongoimport不应该用于数据库的正常插入,它主要用于导入从其他数据源(如其他数据库或应用程序)导出的数据。 – ACE 2013-03-15 17:50:52
你说得对。我目前对使用MongoDB有误解。 我目前正在从几个(千个)网站上抓取标题,然后我会在几个月的时间内进行分析。我将改变我的算法来通过头来做一个insert()头,而不是进行导入。你怎么看? db.scrape.insert(JSON.stringify(OBJ,NULL,2)); – theGreenCabbage 2013-03-18 14:27:58