sql >> データベース >  >> NoSQL >> MongoDB

MongoDB forEach()

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


    1. マングースで分類する方法は?

    2. JSONファイルのMongoimport

    3. Redisのネストされた構造の代替案?

    4. MongoDBでコンソールをクリアする方法