Mongoose:.find() 不返回任何文档

Posted

技术标签:

【中文标题】Mongoose:.find() 不返回任何文档【英文标题】:Mongoose : .find() doesn't return any document 【发布时间】:2019-03-19 04:38:51 【问题描述】:

编辑: 重复:Mongoose find() not returning result


我是 nodejs 和 nosql db 的新手。今天我正在创建一个 API,它使用两个条目读取我的用户集合:

问题是结果是一个空数组:

代码如下:

型号:

var mongoose     = require('mongoose');
var Schema       = mongoose.Schema;

var UserModelSchema   = new Schema(
    _id: Schema.Types.ObjectId,
    user_id:String,
    age: type: Number ,
    status:String
);

module.exports = mongoose.model('user', UserModelSchema);

app.js:

//...
var User     = require('./app/models/user');
//...
router.route('/users')
// get all the users 
.get(function(req, res) 
    User.find(function(err, users) 
        if (err)
            res.send(err);

        res.json(users);
    );
);

【问题讨论】:

可能是***.com/questions/14183611/…的欺骗 【参考方案1】:

您可能希望(即使没有必要)将查询条件传递给您的 find 查询:

对于所有用户,条件为:

User.find(<condition>, function(err, users) 
            if (err)
                res.send(err);

            res.json(users);
        );

但我发现如果集合是通过某种方法创建的,那么您的find 可能无法正常工作。 Mongoose find() not returning result

这可能是问题所在。正常的代码方面你很好。我建议您删除该集合并从猫鼬本身插入开始。这样会更干净

希望这会有所帮助!!

【讨论】:

我仍然有一个空数组作为结果 哦!除此之外我找不到任何问题。 users 是空数组吗? User.find(, function(err, users) if (err) res.send(err); res.json(users); ); 你这样做了吗? 是的,用户仍然是一个空数组 &lt;condition&gt; 参数不是必需的。这可能不应该被接受。【参考方案2】:

试试这个...

User.find(, function(err, docs) 

【讨论】:

以上是关于Mongoose:.find() 不返回任何文档的主要内容,如果未能解决你的问题,请参考以下文章

更新 findOne()/find()/findById() 返回的文档 - mongoose

mongoose.find() 每次都不返回

Mongoose 没有使用简单的 find() 返回文档中的所有字段

Mongoose find 可以返回所有但不仅仅是一个

mongoose .find() 方法返回具有不需要的属性的对象

Mongoose.js getter 在 Find() 上膨胀子文档?