【问题标题】:Mongo query not producing results in my main serverMongo 查询未在我的主服务器中产生结果
【发布时间】:2021-01-17 09:50:21
【问题描述】:

我尝试使用 Promise 从我的 mongoDB 数据库中获取所有项目。 这是我的代码:

exports.findAll = function(){
  return new Promise(function(resolve, reject){
      Collection.find({}, function(err, res){
        if(err){
          reject(err);
        } else {
          console.log(res);
          resolve(res);
        }
      });
  });
}

但是,当我调用findAll() 函数时,结果是一个空数组。我检查了我与数据库的连接,它已成功建立。并且数据库本身也是非空的。我无法弄清楚我做错了什么。任何帮助表示赞赏。提前致谢!

【问题讨论】:

    标签: javascript node.js mongodb mongoose promise


    【解决方案1】:

    您可以使用mongoose 舒适地使用 MongoDB

    import mongoose from 'mongoose';
    

    创建连接

    await mongoose.connect('mongodb://localhost/my_database', {
      useNewUrlParser: true,
      useUnifiedTopology: true,
      useFindAndModify: false,
      useCreateIndex: true
    });
    

    为集合创建模型

    const collection= new Schema({
      _id: ObjectId,
      name: String,
      age: Number,
    });
    
    const Collection= mongoose.model('Collection', collection);
    
    
    const data = await Collection.find({});
    

    Here你可以找到更多信息查看Mongoose文档

    【讨论】:

    • 感谢您的帮助!但是,使用猫鼬似乎并不能解决我的问题。我已经使用 mongoose 成功建立了连接,当我运行 findOne() 等其他查询时,它似乎运行完美,但我无法在我的 findAll() 函数中使用 Promise 生成结果。我不确定我做错了什么
    • 那么find()?
    • 对不起,我的错,我的意思是 find() 而不是 findAll()。问题似乎在于我构建承诺的方式。在我没有使用 Promise 的测试项目中,所有功能都可以正常工作。
    • console.log(res) 记录一个空数组?
    • 是的,console.log(err) 产生 null
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-23
    • 2022-06-10
    • 1970-01-01
    • 2020-07-29
    • 1970-01-01
    相关资源
    最近更新 更多