MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

MongoDB:cursor.toArray trả về Promise {}

Bạn gặp lỗi này vì phương thức find () không đồng bộ, đó là lý do tại sao lời hứa đang chờ xử lý:nó vẫn đang tìm nạp.

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

Lưu ý rằng bạn có dữ liệu của mình bên trong một lệnh gọi lại. Để biết thêm thông tin về lời hứa, hãy kiểm tra Lời hứa

Tùy thuộc vào phiên bản nút của bạn (tôi tin là 7.6+), bạn có thể sử dụng thứ gì đó như thế này

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

const results = await getResults();

Vì vậy, mã của bạn trông giống như một mã đồng bộ. Chìa khóa ở đây là lệnh async / await đợi kết quả hứa hẹn.

Hy vọng nó sẽ hữu ích!



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Truy vấn Mongodb với các trường trong cùng một tài liệu

  2. trích xuất giá trị mảng con trong mongodb

  3. Tổng hợp Mongoose với geonear

  4. MongoDB $ hàng tuầnUpdate # 65 (ngày 15 tháng 4 năm 2022):GDELT, Mongoose và Giờ Hackathon!

  5. Nhận các giá trị khác biệt từ mảng dựa trên các điều kiện trong mảng