Node.js Mongoose始终返回空数组NodeJS

Node.js Mongoose始终返回空数组NodeJS,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我尝试过使用find和findOne两种方法,但都没有返回文档find返回空数组,而findOne返回null错误在这两种情况下也都为null 这是我的连接: function connectToDB(){ mongoose.connect("mongodb://localhost/test"); //i have also tried 127.0.0.1 db = mongoose.connection; db.on("error", console.error.bin

我尝试过使用
find
findOne
两种方法,但都没有返回文档
find
返回空数组,而
findOne
返回
null
<代码>错误在这两种情况下也都为
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);  
});

我可以把东西上传到数据库,并通过查看它们,但之后我无法取回它们。这是我第一次使用MongoDB,所以我想我只是缺少了一些基础知识。任何朝正确方向的推动都将是伟大的

mongoose.model
的调用建立了模型所绑定的集合的名称,默认为小写的模型名称。因此,对于您的代码,这将是
“模型”
。要将模型与
文件
集合一起使用,请将该行更改为:

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


简单地说,为了避免多元化的复杂性,请使用以下方法:

var Model = mongoose.model("Model", fileSchema, "pure name your db collection");

这很让人困惑。[至少对我来说。]

也有类似的问题。上述解决方案对我不起作用。即使找不到查询,我的应用程序也不会返回错误。它返回空数组。所以我把它放在我的代码中:

if(queryResult.length==0) return res.status(404).send("not found");
我故意在“成长单元”中有一个空间,它总是返回空数组。在我的场景中,删除该空间以成为“成长单位”是需要的修复

const growingUnit= mongoose.model('Growing Unit', growingUnitSchema);

这个问题可能是因为您在创建猫鼬模型时没有指定集合的名称

尝试更改:
constmodel=mongoose.Model(“Model”,fileSchema)

对此:
constmodel=mongoose.Model(“Model”,fileSchema,“NameOfCollection”)

一般“hello world”问题(有时该问题与猫鼬无关)

  • 检查集合是否不是真的空(屏幕截图)
  • 检查集合查询命令中的拼写差异(如
    列表
    而不是
    列表

  • 检查您的连接是否使用了正确的
    URI
    (例如,您试图从
    localhost
    中存在的集合中检索数据,但使用
    mongoDB集群
    (云)-或-与连接字符串URI相关的任何其他问题)。


  • 您通过RockMongo看到的文档集合的名称是什么?所有信息都在TestBeauty下的集合
    文件中,非常感谢。我很惊讶,我一直关注的教程中没有一个提到这一点。这挽救了这一天。谢谢!遗憾的是,官方指南中没有强调这一点。@thameera,这里也是。我正从.net领域进入未知领域,在这一点上我浪费了太多时间。救生员。是的,公约似乎并没有被提及,至少在我的搜索尝试。非常感谢。var Model=mongoose.Model(“Model”,fileSchema,“files”);今天是2021年,这仍然是在拯救我的生命,谢谢!!!
    
    const growingUnit= mongoose.model('Growing Unit', growingUnitSchema);
    
    const growingUnit= mongoose.model('Growing Unit', growingUnitSchema);