【发布时间】:2021-10-28 04:33:31
【问题描述】:
我想返回对象属性值,但点属性访问器不起作用。以下是我的功能:
async abc(reviewId){
let b = this.get(reviewId)
return b
}
下面是 get 函数 abc() 调用:
async get(reviewId) {
const restaurantsCollection = await restaurants();
reviewId = ObjectId(reviewId)
const r = await restaurantsCollection.findOne(
{ reviews: { $elemMatch: { _id : reviewId } } },
{"projection" : { "reviews.$": true }}
)
return r.reviews[0]
}
我可以返回 b:
{
_id: new ObjectId("617a07afeae615cff755fec7"),
title: 'tkl',
reviewer: 'sm',
rating: 1,
dateOfReview: '15/1/2002',
review: ' ruh'
}
当我返回 b.rating 时,它返回 undefined:
async abc(reviewId){
let b = this.get(reviewId)
return b.rating
}
我错过了什么?
【问题讨论】:
-
从 mongodb 获得的一组数据的引用会有所帮助,但您在返回 b.rating 之前尝试过 JSON.stringify(JSON.parse(b)) 吗?
-
当我添加这个时我得到这个错误:SyntaxError: Unexpected token o in JSON at position 1,我想我必须使用 findOne 来获取整个对象然后得到评级,谢谢你的评论