MongoDBでは、cursor.forEach()
メソッドはカーソルを繰り返してJavaScriptのfunction
を適用します カーソルから各ドキュメントに移動します。
構文
構文は次のようになります:
db.collection.find().forEach(<function>)
collection
ドキュメントが存在するコレクションの名前です。
<function>
署名には、処理する現在のドキュメントに渡される単一の引数が含まれます。
例
products
というコレクションがあるとします。 次の3つのドキュメントが含まれています:
{ "_id" : 1, "product" : "Left Handed Screwdriver" }
{ "_id" : 2, "product" : "Left Blinker" }
{ "_id" : 3, "product" : "Long Weight" }
forEach()
を使用できます find()
と組み合わせたメソッド 各ドキュメントにJavaScript関数を適用しながら、これらのドキュメントを反復処理するメソッド。
例:
db.products.find().forEach(
function(p) {
print(
p.product.replace("Left","Right")
);
}
);
結果:
Right Handed Screwdriver Right Blinker Long Weight
エラー?
次のようなエラーが発生した場合:
uncaught exception: TypeError: db.products.findOne(...).forEach is not a function : @(shell):1:1
find()
を使用していることを確認してください findOne()
ではありません 。
findOne()
メソッドは、カーソルではなく実際のドキュメントを返します。したがって、forEach()
findOne()
では機能しません 。また、機能したとしても、findOne()
単一のドキュメントのみを返すため、複数のドキュメントを繰り返す必要はありません。