Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.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 - Fatal编程技术网

Node.js Mongodb查找事件

Node.js Mongodb查找事件,node.js,mongodb,Node.js,Mongodb,我在monogdb上收集了大量日志事件,每个事件都有一个唯一的id 一个非常简单的例子: 用户登录 用户创建了一个产品 用户创建了一个产品 用户重命名了一个产品 用户创建了一个产品 用户注销 我想找到一个特定的事件(比如第三个产品创建事件),我想在该事件之前获取10个事件,在该事件之后获取10个事件。 对于mongodb,这可能吗 我在用猫鼬和NodeJs 谢谢 如果您对事件具有唯一的时间戳,则此功能将起作用: Model.find({"event": "user created a p

我在monogdb上收集了大量日志事件,每个事件都有一个唯一的id

一个非常简单的例子:

  • 用户登录
  • 用户创建了一个产品
  • 用户创建了一个产品
  • 用户重命名了一个产品
  • 用户创建了一个产品
  • 用户注销
我想找到一个特定的事件(比如第三个
产品创建
事件),我想在该事件之前获取10个事件,在该事件之后获取10个事件。 对于mongodb,这可能吗

我在用猫鼬和NodeJs


谢谢

如果您对事件具有唯一的
时间戳
,则此功能将起作用:

Model.find({"event": "user created a product"}).skip(2).exec(function (err, docs)
{
    var myEvent = docs[0];

    Model.find({timestamp: {$gt: myEvent.timestamp}}).limit(10).exec(function (error, records)
    {
        console.log(records);
    });
});
更新: 如果您没有每个事件的时间戳(这将是非常错误的),这应该可以工作:

Model.find({"event": "user created a product"}).skip(2).exec(function (err, docs)
{
    var myEvent = docs[0];

    Model.find({"_id": { "$lt" : myEvent._id}}).count().exec(function(error,count)
    {
        Model.find().skip(count).limit(10).exec(function(e,records)
        {
            console.log(records);
        })
    })
});