是否有可能得到特定的项目?

时间:2017-05-09 09:57:29

标签: node.js mongodb mongoose

在我的数据库中我有物品。例如,我有59117b14d3c6295d5cd12262 id,这是列表中的10项。有可能以某种方式获得59117b14d3c6295d5cd12262之后的所有项目吗?

list of items

2 个答案:

答案 0 :(得分:2)

您可以在$gt字段上执行 _id 操作,如下所示:

db.cars.find({_id: {$gt: ObjectId("59117b14d3c6295d5cd12262")}})

这将返回比_id

更大59117b14d3c6295d5cd12262的所有文档

答案 1 :(得分:1)

如果您已经知道该文档是第10个,那么您可以使用skip

db.collection.find().skip(10);

否则,您可以使用greater than operator ($gt)过滤_id

db.collection.find({ _id: { $gt: ObjectId("59117b14d3c6295d5cd12262") }});

但请注意,按ObjectId排序并不总是与广告订单排序相符。来自BSON Types documentation

  

ObjectId值的顺序与生成时间之间的关系在一秒钟内并不严格。如果单个系统上的多个系统或多个进程或线程在一秒钟内生成值; ObjectId值不代表严格的广告订单。客户端之间的时钟偏差也会导致非严格的排序,即使是值,因为客户端驱动程序会生成ObjectId值。