2013-03-15 11 views
8

node.js/javascriptには、コード内にmongoimportを使用できるライブラリがありますか?Javascript/Node.jsでコード内でmongoimportを実行する

私の理解では、mongoimportは、テキスト入力環境を使用する前にまず実行する必要のある.exeのようなものです。

私のコードでmongoimportを実行して、私のコードで直接必要なコマンドを解析することはできますか?

私の現在のアルゴリズムが含まれます。

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

objが次に(HTTPレスポンスを要求)関数は、Node.jsののres方法でJSON.stringifyに解析するために何を指定するオブジェクト

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/ –

+0

ジェームズが言ったことを拡張するために、あなたはmongoimportが使われていることを誤解していると思います。 mongodbとのやりとりのほとんどは、ドライバーを通じて行われます。ドライバでは、特定の言語(この場合はJavaScript)を使用してデータベース内のドキュメント(オブジェクト)を挿入、更新、および削除することができます。 Mongoimportはdb内の通常の挿入に使用すべきではなく、他のデータベースやアプリケーションのように他のソースからエクスポートされたデータのインポートに主に使用されます。 – ACE

+0

あなたは正しいです。私は現在、MongoDBの使用に関する誤解を抱いています。 私は現在、カップル(千)のサイトからヘッダーを削っています。それから私は数ヶ月以内に分析を行います。インポートを行う代わりにヘッダでinsert()ヘッダを行うアルゴリズムを変更します。どう思いますか? db.scrape.insert(JSON.stringify(obj、null、2)); – theGreenCabbage

答えて

0

を高く評価し、私は決してノード専門家だ - しかし、あなたは、既存のJSONファイルがある場合hereを説明したり、様々なanswersのように、あなたはシェルコマンドとしてノードでmongoimportを実行する可能性があります。

+0

彼は彼がそれを認識していると言いました。彼はmongoシェルの代わりにJavaScriptで 'mongoimport'に相当する方法を尋ねています。 – Benny

+0

彼は「私のコードでmongoimportを実行することは可能ですか?」と尋ねました。 私がリンクした最初の記事は、「UnixコマンドをNode.jsで実行する」というタイトルです。これは技術的にはうまくいくでしょう。しかし、私はこれがおそらく効率性の点で覚えていたものではないことを認識しています。 – thomers

0

これは私がmongoimportコマンドをexecした後、私はづけしするコードの横にCBを渡すか、またはあなたができる非同期のスタイルを使用していない場合、私は自分のコード

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() 
}) 

でそれを行う方法ですそれを同期させるchild_process.execSync(command[,options])

関連する問題