MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

MongoDB:cursor.toArray връща Promise { }

Получавате тази грешка, защото методът find() е асинхронен, затова обещанието чака:то все още се извлича.

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

Забележете, че имате вашите данни в обратно извикване. За повече информация относно обещанията проверете Promise

В зависимост от версията на вашия възел (7.6+ предполагам), можете да използвате нещо подобно

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

const results = await getResults();

Така че вашият код изглежда като синхронен код. Ключът тук е командата async/await, която чака резултатите от обещанието.

Надявам се да помогне!



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongodb сумира размера на полетата на масива

  2. Ръководство за разработчици за MongoDB Sharding

  3. Как можете да посочите реда на свойствата в javascript обект за MongoDB индекс в node.js?

  4. Извличане на едно свойство от документ

  5. Не мога да се свържа с MongoDB Atlas (queryTxt ETIMEOUT)