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