Подтвердить что ты не робот

Mongoose всегда возвращает пустой массив NodeJS

Я попытался использовать find и findOne, и оба они не возвращают документ. find возвращает пустой массив, а findOne возвращает null. err в обоих случаях в null.

Вот моя связь:

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");
    });
};

Вот я схема:

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);

И мой запрос находится здесь:

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

Я могу загружать вещи в базу данных и просматривать их через RockMongo, но я не могу их загрузить. Это мой первый раз, используя MongoDB, поэтому я думаю, что просто не хватает некоторых основ. Любое нажатие в правильном направлении было бы здорово!

4b9b3361

Ответ 1

Вызов mongoose.model устанавливает имя коллекции, к которой привязана модель, причем по умолчанию используется pluralized, нижний название модели. Таким образом, с вашим кодом это будет 'models'. Чтобы использовать модель с коллекцией files, измените эту строку на:

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

или

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