Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js MongoDB在查找结果之前和之后获取行_Node.js_Mongodb_Mongoose - Fatal编程技术网

Node.js MongoDB在查找结果之前和之后获取行

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

我使用的是MongoDB(Node.js上的Mongoose),我有一个非常大的事件数据库,每个事件都有一个字段
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 } } );