一尘不染

mongoose总是返回一个空数组NodeJS

node.js

我已经尝试过使用find并且findOne都没有返回文档。find是在返回一个空数组findOne被返回nullerr在这两种情况下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,因此我认为我只是缺少一些基础知识。向正确方向的任何推动都是很棒的!


阅读 481

收藏
2020-07-07

共1个答案

一尘不染

mongoose.model建立模型所绑定的集合的名称的调用,默认值为复数的小写模型名称。因此,使用您的代码将是'models'。要将模型与files集合一起使用,请将该行更改为:

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

要么

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