2016-12-03 13 views
-1

私は巨大な monogdbにログイベントのコレクションを持って、各イベントは一意のIDを持っています。Mongodbが見つかりました

非常に単純な例:

  • ユーザログイン
  • ...
  • ユーザーが
  • ユーザーが製品に
  • ユーザーが作成した製品を作成し
  • ユーザーが作成した製品と改名製品
  • ...
  • ユーザーが、私は特定のオカレンスを見つけたい

をログアウト(第三product createイベントを言う)と私は前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); 
    }); 
}); 

更新: をあなたが(本当に間違っているだろう)各イベントのタイムスタンプを持っていない場合、これは動作するはずですあなたがイベントのためのユニークなtimestampを持っている場合、これは動作します

答えて

0

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); 
     }) 
    }) 
}); 
関連する問題