我正在尝试修改 .find() 中单个字段的结果以删除不必要的数据。当字段likedBy(数组)不包含 userId 时,它应该返回一个空数组。但是,当likedBy确实包含用户 ID 时,它应该返回仅包含该用户 ID 的数组,而不是所有用户 ID。
const response = await MyObject.find().lean({
"likedBy": {
"$elemMatch": {
"$eq": body.userId
}
},
});
userId = 'id-1' 时的当前响应:
{
"_id": "some id",
"...rest of the fields"
"likedBy": [
"id-1",
"id-2",
"id-3",
]
},
我想要的是:
{
"_id": "some id",
"...rest of the fields"
"likedBy": [
"id-1",
]
},