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

Node.jsmongodbドライバーの非同期/待機クエリ

    すべての回答にいくつかのビットが欠落しているため(キャッチブロック、クライアントがnullではないことを確認する )私は自分の解決策を思いついた。 Mongoサーバーv4.0.7とNodeJSドライバー3.2.2でテスト済み。

    この例はコンソールプログラムであり、finallyでサーバーへの接続を閉じていることに注意してください。 ブロック。 Webアプリケーションでは、接続が再利用されます。NodeMongoのドキュメントを参照してください。また、エラーはWinstonやMorganなどのライブラリに記録され、コンソールには記録されません。

    const MongoClient = require('mongodb').MongoClient;
    
    const url = 'mongodb://localhost:27017';
    
    async function findOne() {
    
        const client = await MongoClient.connect(url, { useNewUrlParser: true })
            .catch(err => { console.log(err); });
    
        if (!client) {
            return;
        }
    
        try {
    
            const db = client.db("testdb");
    
            let collection = db.collection('cars');
    
            let query = { name: 'Volkswagen' }
    
            let res = await collection.findOne(query);
    
            console.log(res);
    
        } catch (err) {
    
            console.log(err);
        } finally {
    
            client.close();
        }
    }
    
    await findOne();
    


    1. Ansibleを使用したMongoDBシャードのデプロイと構成

    2. ImportError:redisという名前のモジュールがありません

    3. ApacheHBase書き込みパス

    4. MongoDB-コレクション内のネストされたアイテムをクエリする方法は?