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

MongoDB:cursor.toArrayはPromise{}を返します

    find()メソッドが非同期であるため、このエラーが発生します。そのため、Promiseは保留中です。まだフェッチ中です。

    db.collection('diseases').find({
      'ttl.txt': {
        $regex: data,
        $options: 'i'
      }
    }).toArray().then((data) => {
        // Here you can do something with your data
        doSomethingWithTheResult(result)
    })
    

    コールバック内にデータがあることに注意してください。約束の詳細については、約束 を確認してください。

    ノードのバージョン(7.6以上だと思います)に応じて、次のようなものを使用できます

    async function getResults() {
        return db.collection('diseases').find({
            'ttl.txt': {
            $regex: data,
            $options: 'i'
            }
        }).toArray();
    }
    
    const results = await getResults();
    

    したがって、コードは同期コードのように見えます。ここで重要なのは、promiseの結果を待つasync/awaitコマンドです。

    お役に立てば幸いです。



    1. mongoexport E QUERY SyntaxError:予期しない識別子

    2. Springリポジトリは、異なるクラスタイプのエンティティを自動キャストします

    3. Nodejs-websocket-nodeモジュール:マルチクライアントソケットサーバーを機能させる方法は?

    4. Symfony2のmongoDBは私のエンティティの代わりにloggablecursorを返します