Naz*_*zim 4 mongoose mongodb node.js express
我在 mongodb 中有一个产品文档。我在过滤和排序后使用跳过和限制分页检索数据,就像使用猫鼬一样-
Product.find({gender:'male'})
.sort(price: 1)
.skip(page * 25).limit(25);
Run Code Online (Sandbox Code Playgroud)
当页面值为 0 时,它会按预期返回结果,但是当页面值更改为 1 时,它会返回一些在页面值为 0 时已检索到的结果。我通过nodjs express中的查询传递所有这些参数。在使用猫鼬分页时,如何仅通过排序和过滤来检索唯一值?
Cuo*_*goc 10
正如这里提到的:
MongoDB 不按特定顺序将文档存储在集合中。对包含重复值的字段进行排序时,包含这些值的文档可能会以任何顺序返回。
如果需要一致的排序顺序,请在排序中至少包含一个包含唯一值的字段。保证这一点的最简单方法是
_id在排序查询中包含该字段。
所以你可以通过以下方式解决问题:
Product.find({gender:'male'})
.sort({price: 1, _id: 1})
.skip(page * 25).limit(25);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2200 次 |
| 最近记录: |