Node.js MongoDB在查找结果之前和之后获取行
我使用的是MongoDB(Node.js上的Mongoose),我有一个非常大的事件数据库,每个事件都有一个字段Node.js MongoDB在查找结果之前和之后获取行,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我使用的是MongoDB(Node.js上的Mongoose),我有一个非常大的事件数据库,每个事件都有一个字段seq(序列),即事件的顺序。 我希望允许我的用户查找给定事件的所有事件 例如: 用户正在搜索事件“ButtonClicked”,我应该返回该事件发生的所有位置,在本例中为[23919925932] 这很简单,我可以搜索请求的事件,然后返回seq字段。 现在,我想让用户在特定的seq之前查看20个事件,在之后查看20个事件 如果我能做这样的事情,那就太好了: db.events.fin
seq
(序列),即事件的顺序。
我希望允许我的用户查找给定事件的所有事件
例如:
用户正在搜索事件“ButtonClicked”,我应该返回该事件发生的所有位置,在本例中为[23919925932]
这很简单,我可以搜索请求的事件,然后返回seq
字段。
现在,我想让用户在特定的seq
之前查看20个事件,在之后查看20个事件
如果我能做这样的事情,那就太好了:
db.events.find({id:“ButtonClicked”,seq:1992}).before(20).after(20)代码>
我该怎么做
请注意,seq
字段可以以任何数字开头,也可以跳过数字,但它是递增的!
例如:[3,4,5,6,7,12,13,15,56,57…]
另外,请注意,解决方案可以忽略seq
,我提到这个字段是因为我认为它可以帮助解决方案
谢谢 您尤其可以使用$gte
和$lte
,使用seq
作为比较的偏移量
尝试:
您无法获得确切的40个事件,因为正如您所提到的seq
可能会跳过数字
var seqOffset = 1992;
db.events.find( { seq: { $gte: seqOffset - 20, $lte: seqOffset + 20 } } );