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, поэтому я думаю, что просто не хватает некоторых основ. Любое нажатие в правильном направлении было бы здорово!
Ответы
Ответ 1
Вызов mongoose.model
устанавливает имя коллекции, к которой привязана модель, причем по умолчанию используется pluralized, нижний название модели. Таким образом, с вашим кодом это будет 'models'
. Чтобы использовать модель с коллекцией files
, измените эту строку на:
var Model = mongoose.model("Model", fileSchema, "files");
или
var Model = mongoose.model("file", fileSchema);