私は、myDatabaseという名前のDBとtestというコレクションを持っています。ファイルからMongoフィールドを更新する
デビッド
ロナウド
スミス
メッシ
Phlip
ジェレミー
:私は、下記の内容でName.csvと呼ばれるファイルを持っています私がやりたい何
サヒド
は次のとおりです。
1)は、ファイルからデータを読み込みName.csv
2)私のコレクションのテストになりました同じ値が含まれているフィールドと呼ばれるfisrt_nameを持っています。ですから、first_nameという名前のフィールドを上記のファイルの名前でランダムに更新したいと思います。
私は何をしようとしたことは次のとおりです。
use myDatabse
var file = cat('/home/milan/Desktop/Names.csv'); // read the file
var name = file.split('\n'); // create an array
for (var i = 0, l = name.length; i < l; i++){
db.test.find().forEach(function(doc){db.test.update({_id:doc._id}, {$set:{"first_name":name[i]}});});
}
注:私はこのような何かを引き起こすたい上記のスクリプトから
を任意の結果やエラーを取得できませんでした:
{ "_id" : ObjectId("141491ee909f1a779b467cbb"), "first_name" : "David" } //first name from file
{ "_id" : ObjectId("141491ee909f1a779b467ccc"), "first_name" : "Ronaldo" } // Second name from file
{ "_id" : ObjectId("141491ee909f1a779b467cdd"), "first_name" : "Smith" } // third name from file
あなたは '単語'を定義していません。少なくとも質問にはならない。 –
間違いの申し訳ありません、今編集されました –
再び。 'name'は恐らく一つの長い文字列にすぎません。カンマ '、'などで分割する必要があります。 [mongoimport](https://docs.mongodb.com/manual/reference/program/mongoimport/#cmdoption-mode)にupsertオプションがあります。リンクがあります。おそらくシェルでこれを試してロールするのではなく、それを使用するほうがきれいでしょう。 –