繁体   English   中英

尝试使用 mongoose 从数组中获取一个元素

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM