检索具有不同列值的最新数据 - mongoid + rails4

时间:2014-06-08 22:26:44

标签: ruby-on-rails mongodb ruby-on-rails-4 mongoid

我在mongodb上有一个kevent集合,如下所示:

_id,                user_id     action          created_at
43gy5235rwedwe      11          logout          2014-05-30 04:01:32 +0000
563gy5wwwedwex      11          running         2014-05-30 04:01:28 +0000
77gy5235rwedwe      26          logout          2014-05-30 04:01:22 +0000
3gy5235rwed65e      11          create          2014-05-30 04:01:20 +0000
4dgy5er35rwcwe      11          upgrade         2014-05-30 04:01:18 +0000
df5gy5s35rwwwd      43          poked           2014-05-30 04:00:32 +0000
fggy5235r322fs      29          login           2014-05-30 03:01:31 +0000
bhgy5235rwedfs      43          login           2014-05-30 03:01:30 +0000
ftweerw35rwedw      11          jumped          2014-05-30 04:01:29 +0000
we2y5s35rwedqq      12          created         2014-05-30 02:01:28 +0000
36gy5sa5rwesad      26          login           2014-05-30 01:01:27 +0000
36q4sa5rwesadw      11          login           2014-05-30 00:01:26 +0000

我正在使用mongoid(在rails 4中)来检索不同用户的最近三次操作。所以结果应该是这样的:

_id,                user_id     action          created_at
43gy5235rwedwe      11          logout          2014-05-30 04:01:32 +0000
77gy5235rwedwe      26          logout          2014-05-30 04:01:22 +0000
df5gy5s35rwwwd      43          poked           2014-05-30 04:00:32 +0000

如何使用mongoid?

1 个答案:

答案 0 :(得分:1)

试试这个!

SQL:

SELECT *
FROM users
WHERE status = "A"
AND age = 50

蒙戈:

db.users.find(
    { status: "A",
      age: 50 }
)

在您的情况下,您可以执行以下操作:

User.any_of("$and" => [{action: "logout", action: "poked"}])

您可以看到与Mongo here

的SQL的每个比较