sql >> Database >  >> NoSQL >> MongoDB

MongoDB:cursor.toArray retourneert Promise { }

U krijgt deze foutmelding omdat de methode find() asynchroon is, daarom is de belofte in behandeling:deze wordt nog steeds opgehaald.

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

Merk op dat u uw gegevens in een callback hebt. Voor meer info over beloften check Belofte

Afhankelijk van je node-versie (7.6+ geloof ik), kun je zoiets als dit gebruiken

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

const results = await getResults();

Dus je code ziet eruit als een synchrone code. De sleutel hier is het async/wait-commando dat wacht op de resultaten van de belofte.

Ik hoop dat het helpt!



  1. Op zoek naar een manier om documenten uit een andere collectie te retourneren op basis van een set uit een andere, MongoDB

  2. Inleiding tot Redis-gegevensstructuren:gesorteerde sets

  3. Hoe een recursieve structuur te bouwen met MongoDB

  4. Zoek een string binnen een string in SQL