【问题标题】:Mongodb find occurrencesMongodb 查找事件
【发布时间】:2016-12-03 20:19:22
【问题描述】:

我在monogdb上有一个巨大的日志事件集合,每个事件都有一个唯一的ID。

一个非常简单的例子:

  • 用户登录
  • ...
  • 用户创建了一个产品
  • 用户创建了一个产品
  • 用户重命名了产品
  • 用户创建了一个产品
  • ...
  • 用户登出

我想找到一个特定的事件(比如第三个 product create 事件)并且我想获取 10 个之前的事件10 个之后的事件。 使用 mongodb 甚至可以吗?

我正在使用 Mongoose 和 NodeJs

谢谢!

【问题讨论】:

    标签: node.js mongodb


    【解决方案1】:

    如果您有唯一的 timestamp 事件,这将起作用:

    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);
            })
        })
    });
    

    【讨论】:

      猜你喜欢
      • 2020-10-16
      • 1970-01-01
      • 2019-05-11
      • 1970-01-01
      • 2015-04-09
      • 1970-01-01
      • 2015-06-24
      • 1970-01-01
      相关资源
      最近更新 更多