[英]Trying to get one element from an array using mongoose
我正在尝试使用 mongoose 从数组中随机获取一项,我使用.aggregate
:
const winner = await gSchema.aggregate(
[
{ "$unwind": "$Users" },
{ "$sample": { "size": 1 } }
]
)
我console.log(winner)
我得到:
[
{
_id: new ObjectId("62c0943a789817d59c19bfa4"),
Guild: '1234567889',
Host: '1234567889',
Channel: '1234567889',
MessageID: '1234567889',
Time: '86400000',
Date: 2022-07-02T18:53:46.981Z,
Users: '1234567889',
__v: 0
}
]
相反,我只想在我的控制台中获取Users
的值,例如: 1234567889
,而不是整个架构,知道如何实现吗?
使用aggregate
时还有一种方法可以使用过滤器吗?
为了仅获取Users
数据,请添加投影步骤:
const winner = await gSchema.aggregate(
[
{$unwind: "$Users"},
{$sample: {size: 1}},
{$project: {Users: 1, _id:0}}
]
)
为了过滤,添加一个$match
步骤。
关于问题的快速更新,使用console.log(winner[0].Users)
解决了我的问题
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.