【问题标题】:How can I get random 4 documents from a collection in mongodb by node? [duplicate]如何按节点从 mongodb 的集合中获取随机 4 个文档? [复制]
【发布时间】:2022-01-17 17:49:04
【问题描述】:

我只需要通过 node/express.js 从 MongoDB 获取 4 个文档。我可以限制 4 个文档,但不能限制随机 4 。那么,我怎样才能得到 4 个随机文档?

【问题讨论】:

标签: javascript node.js mongodb express


【解决方案1】:

从 MongoDB 3.2 版本开始,您可以使用 $sample 聚合管道运算符从集合中获取 N 个随机文档:

// Get one random document from the mycoll collection.
db.mycoll.aggregate([{ $sample: { size: 1 } }])

如果要从集合的过滤子集中选择随机文档,请在管道前添加 $match 阶段:

// Get one random document matching {a: 10} from the mycoll collection.
db.mycoll.aggregate([
    { $match: { a: 10 } },
    { $sample: { size: 1 } }
])

当 size 大于 1 时,返回的文档样本中可能存在重复。

【讨论】:

  • 正如@cmgchess 所建议的
猜你喜欢
  • 1970-01-01
  • 2016-10-21
  • 2020-06-16
  • 1970-01-01
  • 2012-11-11
  • 1970-01-01
  • 1970-01-01
  • 2018-03-29
  • 1970-01-01
相关资源
最近更新 更多