Mongoose always returning an empty array NodeJS

匿名 (未验证) 提交于 2019-12-03 02:10:02

问题:

I have tried using find and findOne and both are not returning a document. find is returning an empty array while findOne is returning null. err in both cases in null as well.

Here is my connection:

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

Here is me 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);

And my query is here:

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

I can upload things to the database and see them via RockMongo but I cannot fetch them after. This my first time using MongoDB so I think I'm just missing some of the fundamentals. Any push in the right direction would be great!

回答1:

The call to mongoose.model establishes the name of the collection the model is tied to, with the default being the pluralized, lower-cased model name. So with your code, that would be 'models'. To use the model with the files collection, change that line to:

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

or

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


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!