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() 単一のドキュメントのみを返すため、複数のドキュメントを繰り返す必要はありません。