Mongo 查询未在我的主服务器中产生结果

Posted

技术标签:

【中文标题】Mongo 查询未在我的主服务器中产生结果【英文标题】:Mongo query not producing results in my main server 【发布时间】: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() 函数时,结果是一个空数组。我检查了我与数据库的连接,它已成功建立。并且数据库本身也是非空的。我无法弄清楚我做错了什么。任何帮助表示赞赏。提前致谢!

【问题讨论】:

【参考方案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

以上是关于Mongo 查询未在我的主服务器中产生结果的主要内容,如果未能解决你的问题,请参考以下文章