MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

MongoDB:cursor.toArray zwraca obietnicę { }

Otrzymujesz ten błąd, ponieważ metoda find() jest asynchroniczna, dlatego obietnica jest w toku:nadal się pobiera.

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

Zauważ, że masz swoje dane w wywołaniu zwrotnym. Więcej informacji o obietnicach znajdziesz w Obietnica

W zależności od wersji węzła (chyba 7.6+), możesz użyć czegoś takiego

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

const results = await getResults();

Więc twój kod wygląda jak kod synchroniczny. Kluczem jest tutaj polecenie async/await, które czeka na wyniki obietnicy.

Mam nadzieję, że to pomoże!



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Zapytanie po wypełnieniu w Mongoose

  2. DB-ref w manguście bez Schema.ObjectId?

  3. Mongo i znajdź zawsze ograniczone do 100 z danymi geograficznymi

  4. Mongodb foreach dla kolekcji zagnieżdżonej w celu aktualizacji/kopiowania dokumentów do innej kolekcji

  5. import nextjs, ale nie wywołuj funkcji rzuca Nie znaleziono modułu:Błąd:nie można rozwiązać 'dns'