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

Node/Mongoでの検索を理解する

    私はあなたを認めます、この場合は少し奇妙です。これはmongodb-nativeのv2.2用です。

    まず、find 2つの異なる使用法> 。コールバック関数を指定することも、指定しないこともできます。ただし、いずれの場合も同期的にを返します オブジェクト。より正確には、カーソル 。コールバックを渡すときに非同期メカニズムを期待できましたが、ここでは期待できませんでした。

    collection.find({ }, function (err, cursor) {
      assert(!err);
    });
    console.log('This happens after collection.find({ }, callback)');
    

    または

    const cursor = collection.find({});
    console.log('Also happening after');
    

    一方、toArray は非同期関数であり、2つの異なる使用法もあります。今回は、引数によって返されるオブジェクトが異なります。

    同等です:

    cursor.toArray(function (err, documents) {
      assert.equal(1, documents.length);
    });
    

    そして

    cursor.toArray()
      .then(documents => {
        assert.equal(1, documents.length);
      });
    

    最初の呼び出しでは、toArray undefinedを返します 一方、2番目の例では、Promiseを返します。 。




    1. mongodbv3.2はMacでは実行できません

    2. .NETドライバー2.0を使用してMongoDBでインデックスを構築する

    3. 日付付きのドキュメントをmongoに挿入するにはどうすればよいですか?

    4. 配列内の特定の位置にあるアイテムに基づくMongodbクエリ