32

我尝试使用findandfindOne并且两者都没有返回文档。在返回时返回find一个空数组。在这两种情况下也是如此。findOnenullerrnull

这是我的连接:

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,所以我认为我只是缺少一些基础知识。任何朝着正确方向的推动都会很棒!

4

7 回答 7

76

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

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

或者

var Model = mongoose.model("file", fileSchema);
于 2013-01-06T15:55:01.800 回答
3

简单地为了避免复数复杂性使用这个:

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

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

于 2020-05-26T18:13:34.983 回答
1

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

if(queryResult.length==0) return res.status(404).send("not found");
于 2020-09-28T22:52:44.597 回答
1

这个问题可能是因为您正在创建一个mongoose 模型而没有指定集合的​​名称

尝试改变:const Model = mongoose.model("Model", fileSchema);

对此:const Model = mongoose.model("Model", fileSchema, "NameOfCollection");

于 2020-11-06T11:46:34.210 回答
0
const growingUnit= mongoose.model('Growing Unit', growingUnitSchema);

我故意在“成长单元”中有一个空间,它总是返回空数组。删除该空间以成为“GrowingUnit”是我的场景所需的修复。

const growingUnit= mongoose.model('Growing Unit', growingUnitSchema);
于 2020-10-30T10:38:45.187 回答
0

一般的“hello world”问题(有时这个问题与猫鼬无关)。

  1. 检查集合是否真的为空(mongoDB atlas screenshot)。

在此处输入图像描述

  1. 在您的集合查询命令中检查小的拼写差异(Likelisting而不是)。listings

  2. 检查您是否使用正确URI的连接(例如,您尝试从存在localhost但使用mongoDB cluster(云)的集合中检索数据 - 或 - 与连接字符串 URI 相关的任何其他问题)。 https://docs.mongodb.com/manual/reference/connection-string/

于 2021-01-23T15:31:31.013 回答
0

对我来说,问题是.skip(value),我正在通过page=1而不是page=0。由于我的记录很少,我总是得到空数组。

于 2021-07-18T09:25:26.690 回答