javascript(mongoDBに関する)がmongoDBプロセスの実行を待つかどうかを自問しました。
例えば:
のようなドキュメントを挿入しています
for (i=0; i<=myarray.length -1; i++)
{
db.mycol.insert(myarray[i]);
}
その直後にcolステータスを確認すると、db内のいくつかのドキュメントまたは0のみが表示されます(たとえば、100ではなく29または0のみ)。たとえばsleep(10000)を使用してsleep()関数を実行すると、挿入された可能性のあるすべてのドキュメントを確認できます。
だから私の質問は、javascriptが完全な挿入を待つことをどのように確認できますか?または、どうすればそれを測定できますか?現時点で使用しています
start = new Date().getTime();
for (i=0; i<=myarray.length -1; i++)
{
db.mycol.insert(myarray[i]);
}
end = new Date().getTime();
time = end - start;
しかし、挿入プロセスが完了していない場合、その関数の測定は私には無意味に思えます。
編集:
を使用してdb.getLastError({w:1});
次のエラーが発生します:
キャッチされない例外:getlasterrorが失敗しました:{"singleShard": "replica2 / ip:port、ip:port"、 "n":0、 "lastOp":NumberLong( "5824731790958395692")、 "connectionId":111744、 "assertion": "フィールド(w)3のタイプが間違っています!= 2"、 "assertionCode":13111、 "errmsg": "dbアサーションの失敗"、 "ok":0}の読み込みに失敗しました:... myscript.js