首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mongoose始终返回空数组NodeJS

问Mongoose始终返回空数组NodeJS
EN

Stack Overflow用户
提问于 2013-01-06 23:30:18
回答 7查看 23K关注 0票数 31

我尝试过使用find和findOne,它们都没有返回文档。find返回空数组,而findOne返回null。这两种情况下的err在null中也是如此。

这是我的连接:

代码语言:javascript
复制
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");
    });
};

以下是我的方案:

代码语言:javascript
复制
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);

我的问题是:

代码语言:javascript
复制
Model.find({},function(err, file) {
    console.log(err)
    console.log(file);  
});

我可以上传东西到数据库,并通过RockMongo查看它们,但之后我无法获取它们。这是我第一次使用MongoDB,所以我想我只是错过了一些基础知识。任何在正确方向上的推动都是很棒的!

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2013-01-06 23:55:02

对mongoose.model的调用建立了模型所绑定到的集合的名称,缺省值是pluralized,小写的模型名称。因此,对于您的代码,这将是'models'。要将模型与files集合一起使用,请将该行更改为:

代码语言:javascript
复制
var Model = mongoose.model("Model", fileSchema, "files");

或

代码语言:javascript
复制
var Model = mongoose.model("file", fileSchema);
票数 75
EN

Stack Overflow用户

发布于 2020-05-27 02:13:35

简单地说,为了避免复数复杂性,请使用下面的代码:

代码语言:javascript
复制
var Model = mongoose.model("Model", fileSchema, "pure name your db collection");

这对我来说是非常confusing.at的。

票数 3
EN

Stack Overflow用户

发布于 2020-09-29 06:52:45

也有同样的问题。上面的解决方案对我不起作用。即使没有找到查询,我的应用程序也不会返回错误。它返回空数组。因此,我在代码中添加了以下内容:

代码语言:javascript
复制
if(queryResult.length==0) return res.status(404).send("not found");
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14183611

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档