joh*_*ena 6 round-robin mongodb
我有一个名为 items 的集合,其中包含三个文档。
{
_id: 1,
item: "Pencil"
}
{
_id: 1,
item: "Pen"
}
{
_id: 1,
item: "Sharpner"
}
Run Code Online (Sandbox Code Playgroud)
我如何查询以循环方式获取文档?考虑一下我同时收到多个用户请求。
所以一个人应该得到Pencil ,另一个人会得到Pen,然后另一个人会得到Sharpner。
然后从第一个重新开始。
如果改变模式是一种选择,我也准备好了。
我想我找到了一种无需更改架构即可完成此操作的方法。它基于skip()和limit()。此外,您可以指定保留返回文档的内部排序顺序,但正如指南所说,您不应该依赖于此,特别是因为由于索引被覆盖而导致性能下降:
该
$natural参数根据项目在数据库中的自然顺序返回项目。此排序是内部实现功能,您不应依赖其中的任何特定结构。
无论如何,这是一个查询:
db.getCollection('YourCollection').find().skip(counter).limit(1)
Run Code Online (Sandbox Code Playgroud)
其中counter存储文档的当前索引。
| 归档时间: |
|
| 查看次数: |
814 次 |
| 最近记录: |