Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Javascript/Node.js在代码内部执行mongoimport_Javascript_Json_Node.js_Mongodb_Mongoimport - Fatal编程技术网

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

使用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

node.js/javascript中是否有允许个人在代码中使用
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()
})