MongoDb findOne 结果属性未定义
Posted
技术标签:
【中文标题】MongoDb findOne 结果属性未定义【英文标题】:MongoDb findOne result property is undefined 【发布时间】:2021-09-04 11:18:32 【问题描述】:我在模型中使用 findOne,它会返回响应。
const findAccount = await this.accountModel.findOne(
_id: ObjectId(param.accountId),
);
console.log(findAccount);
//The above logs the data
console.log(findAccount.role, findAccount._id);
//As for this, findAccount.role is undefined, but the findAccount._id was logged.
可能是什么原因?
【问题讨论】:
你能展示你的模型吗? 【参考方案1】:findOne
方法返回一个 Mongoose 文档的实例,这可能会导致这样的情况。要获取 javascript 纯对象,您可以使用 lean()
method。试试这个:
const findAccount = await this.accountModel.findOne(
_id: ObjectId(param.accountId),
).lean();
console.log(findAccount);
//The above logs the data
console.log(findAccount.role, findAccount._id);
【讨论】:
以上是关于MongoDb findOne 结果属性未定义的主要内容,如果未能解决你的问题,请参考以下文章
无法读取未定义的属性“findOne” - Vue.js、Apollo Server、GraphQL 错误
如何使用 MongoDB 聚合 `$lookup` 作为 `findOne()`