sql >> Database teknologi >  >> NoSQL >> MongoDB

MongoDB:cursor.toArray returnerer Promise { }

Du får denne fejl, fordi find()-metoden er asynkron, det er derfor, løftet afventer:det henter stadig.

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

Bemærk, at du har dine data inde i et tilbagekald. For mere info om løfter se Løfte

Afhængigt af din nodeversion (7.6+ tror jeg), kan du bruge noget som dette

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

const results = await getResults();

Så din kode med ligner en synkron kode. Nøglen her er async/await-kommandoen, der venter på løfteresultaterne.

Håber det hjælper!



  1. Indsættelse af Date() i Mongodb gennem mongo shell

  2. korrekt måde at indlæse mongodb hash-associeret array mapping, når du ikke bruger annoteringer med mærkelige accessorer

  3. Sådan kontrolleres, om Mongos $addToSet var en dublet eller ej

  4. Hvordan vil jeg i Mongo matche alle samlingsgenstande med et større array?