首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从mongoDB中选择随机10份文档

从mongoDB中选择随机10份文档
EN

Stack Overflow用户
提问于 2019-04-09 03:40:31
回答 1查看 4.9K关注 0票数 1

我正在学习节点和mongo,目前正在一个简单的服务器上工作,它将从mongodb获取10个随机文档,并在接收到get请求时作为响应发送它们。我的下一个目标是创建一个页面,它将用一些基本的样式在html页面中显示这10条记录。该页面还有一个next按钮,它将从数据库中再获取10条随机记录。问题是如何确保相同的记录在此过程中不会被取两次?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-09 05:18:46

要选择10随机文档,可以使用$sample管道阶段。

代码语言:javascript
复制
let randomDocs = db.col.aggregate(
    [ { $sample: { size: 10 } } ]
)

如果要确保下一次$sample调用不会返回相同的文档,则需要使其具有状态,这意味着您应该过滤掉在上一次调用中返回的文档:

代码语言:javascript
复制
db.col.aggregate(
    [
        { $match: { _id: { $nin: randomDocs.map(doc => doc._id) } } },
        { $sample: { size: 10 } } 
    ]
)
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55584789

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档