[英]How can I get an object value from inside an array?
我想要做的是获得一个数组内部的 object 值。 model是这样的:
_id:630e2a2250283de03b2dc920
fullName: John
phone:"+1234..."
createdAt:2022-08-30T15:17:54.608+00:00
selectedClients:Array
0:Object
phone:"+4567..."
fullName:"Client1"
_id:630e2a8f8367a2aaac3343b4
createdAt:2022-08-30T15:19:43.372+00:00
1:Object
phone:"+7890..."
fullName:"Client2"
_id:630e2b73d42ddc8d622e860f
createdAt:2022-08-30T15:23:31.883+00:00
__v:0
所以我想找到的是Client1。 我得到用户 ID 和客户端 ID。 我尝试了一种方法,但它返回给我的是整个用户 model,而不是 Client1 object。
exports.removeTrustee = asyncHandler(async (req, res, next) => {
const user_id = req.params.user_id.split("-")[1];
const client_id = ObjectId(req.params.client_id.split("-")[1]);
const client = await User.find({
selectedClients: { $elemMatch: { _id: client_id } },
});
所以基本上我想要的是只返回我作为参数输入的client_id object。
例子:
phone:"+4567..."
fullName:"Client1"
_id:630e2a8f8367a2aaac3343b4
createdAt:2022-08-30T15:19:43.372+00:00
我该怎么做?
您可以使用 $elemMatch 投影运算符将像 s 这样的数组字段限制为单个匹配的元素,但您不能使用 find 删除文档的 s 级别:
const client = await User.find({}, {_id: 0, s: {$elemMatch: {_id: client_id}}});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.