2013-01-06 37 views
11

Tôi đã thử sử dụng findfindOne và cả hai đều không trả lại tài liệu. find đang trả về một mảng trống trong khi findOne đang trả lại null. err trong cả hai trường hợp trong null.Mongoose luôn trả về một mảng trống NodeJS

Đây là kết nối của tôi:

function connectToDB(){ 
    mongoose.connect("mongodb://localhost/test"); //i have also tried 127.0.0.1 
    db = mongoose.connection; 
    db.on("error", console.error.bind(console, "connection error:")); 
    db.once("open", function callback(){ 
     console.log("CONNECTED"); 
    }); 
};

Đây là tôi schema:

var fileSchema = mongoose.Schema({ 
    hash: String, 
    type: String, 
    extension: String, 
    size: String, 
    uploaded: {type:Date, default:(Date.now)}, 
    expires: {type:Date, default:(Date.now()+oneDay)} 
}); 
var Model = mongoose.model("Model", fileSchema);

Và truy vấn của tôi là ở đây:

Model.find({},function(err, file) { 
    console.log(err) 
    console.log(file); 
});

Tôi có thể tải lên những cơ sở dữ liệu và xem chúng qua RockMongo nhưng tôi không thể tìm nạp chúng sau. Đây là lần đầu tiên tôi sử dụng MongoDB vì vậy tôi nghĩ rằng tôi chỉ thiếu một số nguyên tắc cơ bản. Bất kỳ cú đẩy nào đi đúng hướng sẽ thật tuyệt vời!

+0

gì tên của bộ sưu tập bạn đang nhìn thấy tài liệu trong qua RockMongo? – JohnnyHK

+0

Tất cả thông tin nằm trong bộ sưu tập 'tập tin' dưới kiểm tra – locrizak

Trả lời

34

Cuộc gọi tới mongoose.model thiết lập tên của bộ sưu tập mà mô hình được gắn với, với tên mặc định là pluralized, tên mẫu được đặt ở mức thấp hơn. Vì vậy, với mã của bạn, đó sẽ là 'models'. Để sử dụng các mô hình với bộ sưu tập files, thay đổi dòng để:

var Model = mongoose.model("Model", fileSchema, "files"); 

hoặc

var Model = mongoose.model("file", fileSchema); 
+3

Đẹp, Cảm ơn bạn rất nhiều. Tôi ngạc nhiên không có hướng dẫn nào tôi đã theo dõi đã đề cập đến điều đó. – locrizak

+4

Đã lưu ngày. Cảm ơn rất nhiều! Thật đáng tiếc điều này không được nêu bật trong hướng dẫn chính thức. – thameera

+0

@thameera giống nhau ở đây. Tôi đang di chuyển vào vùng biển thám hiểm từ vùng đất .net và tôi lãng phí rất nhiều thời gian cho cái này. Lifesaver. Yea, quy ước dường như không được đề cập đến _anywhere_, ít nhất là trong nỗ lực tìm kiếm của tôi. Cảm ơn bạn!!! – scniro

Các vấn đề liên quan