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 查询未在我的主服务器中产生结果的主要内容,如果未能解决你的问题,请参考以下文章

使用相同的命令在不同的文件夹中产生不同的结果

Mongoose 不会在 co 中产生 findeOne 结果

运行 bash 脚本并在错误中产生很好的结果

为啥 SQLite 替换功能会在我的 Android 应用程序中产生错误?

在我将 discord.py 与我的主脚本结合后,任何其他代码都不会运行

日期数学不会在 R 与 Redshift 中产生相同的结果