2017-11-03 24 views
0

Model.bulkWriteでドキュメントをアップできません。私はこれが可能ではないことを示唆するためにドキュメントには何も見つかりませんでした(ただし、私はそれを逃したかもしれません)。以下は、私が使用しているコードのサンプルです:私はループを介して複数の更新/アップサートを実行しているすべての問題を持っていないbulkWriteが更新されていない/更新されていません。

var opts = []; 
for (var item of data){ 
    opts.push({ 
     updateOne: { 
      filter: {"id": item.id}, 
      update: {"$setOnInsert": { 
        "id": item.id, 
        "name": item.name} 
      } 
     } 
    }) 
}; 

Item.bulkWrite(
    opts, 
    {upsert: true}, 
    function(err, result){ 
     if(err) throw err; 
     console.log(result); 
     // do more stuff here 
    } 
); 

は、私は、私は時の動作にコールバックへのアクセスを失うことを行うときそれは私のためには機能しません。また、上記のコードをupdateOneセクションの代わりにinsertOneセクションに置き換えてテストしましたが、問題なく動作します。

誰でも何が起こっているか考えていますか? upsertは有効なオプションではありませんか?

+1

'{UPSERT:真}これはコードの第2のセクションからupsertを除去し、第1のセクションを変更することを意味興味のある人のために、' 'updateOne'、ない' bulkWrite'のオプションがあります。 –

答えて

0

@Alex Blex、あなたはお金の上にいました。私のことをちょうど監視していると思います。

var opts = []; 
for (var item of data){ 
    opts.push({ 
     updateOne: { 
      filter: {"id": item.id}, 
      update: {"$setOnInsert": { 
        "id": item.id, 
        "name": item.name} 
      }, 
      upsert: true 
     } 
    }) 
}; 
関連する問題