【问题标题】:Mongoose : .find() doesn't return any documentMongoose:.find() 不返回任何文档
【发布时间】: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);
    });
});

【问题讨论】:

标签: javascript node.js mongodb express mongoose


【解决方案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) {}

【讨论】:

    猜你喜欢
    • 2020-09-12
    • 2018-02-27
    • 2018-10-02
    • 2020-05-13
    • 1970-01-01
    • 1970-01-01
    • 2017-04-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多