过滤后的Mongodb $ sample

时间:2016-07-25 19:44:29

标签: mongodb mongodb-query aggregation-framework

假设我想让一个人找到与他们无关的人,我会这样做:

User.find({ _id: { $nin: req.user.connections })

但是,我只想从退货中检索最多10个随机文件。在MongoDB中,有$ sample:

{ $sample: { size: <positive integer> } }

我之前从未使用过Mongo,所以我不确定如何将这两个链接在一起,以便我检索当前用户未连接的10个随机人员。

1 个答案:

答案 0 :(得分:5)

$sample是一个聚合运算符,因此您需要创建一个aggregate管道,将两个操作链接在一起:

User.aggregate([
    { $match: { _id: { $nin: req.user.connections } } },
    { $sample: { size: 10 } }
])