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

Mongoose find (), làm thế nào để truy cập các tài liệu kết quả?

Tôi đã tìm ra lỗi. Đó là một khái niệm nhiều hơn:Tôi đang xử lý các cuộc gọi không đồng bộ và đang cố gắng trả về kết quả từ một hàm khác và không biết khi nào nó sẽ thực thi. Vì vậy, những gì sẽ xảy ra là tôi thực hiện yêu cầu rằng truy vấn db được thực thi và trả về kết quả, kết quả hóa ra là null. Mã này:

getNinjas : function(){
    var res = null;
    Ninja.find({},'name skill',function(err,docs){
        if (err)
            console.log('error occured in the database');
        console.log(docs);
    });     
    return res;
}

trả về null, nhưng! console.log (docs) in ra bảng điều khiển tất cả các giá trị từ cơ sở dữ liệu, những gì tôi đang cố gắng thực hiện. Bây giờ tôi cần thực hiện các thay đổi, rất có thể sẽ chuyển một lệnh gọi lại sẽ được thực thi khi nhận được kết quả.

Với những thay đổi, mã trông như thế này:

getNinjas : function(res){
    var twisted = function(res){
        return function(err, data){
            if (err){
                console.log('error occured');
                return;
            }
            res.send('My ninjas are:\n');
            console.log(data);
        }
    }

    Ninja.find({},'name skill',twisted(res));
}

Vì vậy, như thế này, tôi có thể chuyển đối tượng phản hồi để tôi có thể gửi tên của các ninja của mình :)




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Bắt MongoDB trên Linux để nghe các kết nối từ xa

  2. mongoDB:Tạo một ObjectId cho mỗi phần tử con mới được thêm vào trường mảng

  3. Xử lý ngắt kết nối / kết nối lại MongoDB từ Node

  4. Làm cách nào để quản lý các kết nối MongoDB trong ứng dụng web Node.js?

  5. Sắp xếp kết quả tổng hợp addToSet