sql >> Databáze >  >> NoSQL >> MongoDB

MongoDB:kurzor.toArray vrací Promise { }

Tato chyba se vám zobrazuje, protože metoda find() je asynchronní, proto příslib čeká na vyřízení:stále se načítá.

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

Všimněte si, že máte svá data uvnitř zpětného volání. Další informace o slibech najdete na stránce Promise

V závislosti na verzi vašeho uzlu (myslím, že 7.6+) můžete použít něco takového

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

const results = await getResults();

Takže váš kód vypadá jako synchronní kód. Klíčem je zde příkaz async/await, který čeká na výsledky slibu.

Doufám, že to pomůže!



  1. Django Celery nemůže dotazovat postgres db uvnitř úlohy

  2. findOne Subdocument v Mongoose

  3. Jak provést výběr pole na find() v nativním ovladači mongodb?

  4. Redis ukládací seznam uvnitř hash