使用Javascript/Node.js在代码内部执行mongoimport
node.js/javascript中是否有允许个人在代码中使用使用Javascript/Node.js在代码内部执行mongoimport,javascript,json,node.js,mongodb,mongoimport,Javascript,Json,Node.js,Mongodb,Mongoimport,node.js/javascript中是否有允许个人在代码中使用mongoimport的库 据我所知,mongoimport有点像.exe,在使用其文本输入环境之前,必须先执行它 是否可以在代码中执行mongoimport,然后直接在代码中解析所需的任何命令 我目前的算法包括: fs.appendFile('log.txt',JSON.stringify(obj, null, 2)); obj是一个对象,它指定要解析为JSON.stringify的函数,使用node.js的res方法(请求HT
mongoimport
的库
据我所知,mongoimport有点像.exe,在使用其文本输入环境之前,必须先执行它
是否可以在代码中执行mongoimport,然后直接在代码中解析所需的任何命令
我目前的算法包括:
fs.appendFile('log.txt',JSON.stringify(obj, null, 2));
obj是一个对象,它指定要解析为JSON.stringify
的函数,使用node.js的res
方法(请求HTTP响应)
然后我使用mongoimport将这个JSON文档导入到我的MongoDB中
mongoimport--host localhost-db scrapeapp-collection scrape--file log.txt--jsonArray
这种方法显然效率低下。我想一次完成所有这些步骤
帮助感谢我绝不是节点专家-但如果您有现有的JSON文件,您可以在节点中以shell命令的形式执行mongoimport,如前所述或以各种方式执行。我在代码中就是这样做的
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\u进程同步执行。execSync(command[,options])
您看过MongoDB node.js驱动程序了吗?如果您想直接从node.js服务与MongoDB对话,您需要使用此选项。文档就在这里:为了扩展James所说的内容,我认为您对mongoimport的用途有些误解。与mongodb的大多数交互将通过驱动程序进行。驱动程序允许您通过特定语言(本例中为javascript)在数据库中插入、更新和删除文档(对象)。Mongoimport不应用于数据库中的正常插入,它主要用于导入从其他源(如其他数据库或应用程序)导出的数据。您是对的。我目前确实对MongoDB的使用存在误解。我目前正在从几千个网站上抓取标题,几个月后我会对这些标题进行分析。我将更改我的算法,以逐头执行insert()操作,而不是执行导入操作。你怎么认为?insert(JSON.stringify(obj,null,2));是的,你需要做插入:)他说他知道这一点。他问如何在JavaScript中而不是在mongo shell中执行与mongoimport相当的mongoimport
,他问“是否可以在我的代码中执行mongoimport”。我链接到的第一篇文章的标题是“使用Node.js执行Unix命令”——从技术上讲,这是可行的。但我知道这可能不是他在效率方面的想法。
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()
})