MongoDB的用户评分

时间:2015-02-25 07:21:48

标签: mongodb mongodb-query database nosql

我是MongoDB中的新手,我试图了解如何在那里创建对象以及如何选择它们与关系数据库相比较。所以我需要一个例子来说明如何执行这些事情。

让我们说,我现在在MySQL中有两个表:

user:

user_id INT <- PK
first_name VARCHAR(35)
last_name VARCHAR(35)
email VARCHAR(254)

user_rating:

rating_id INT <- PK
value FLOAT
time TIMESTAMP

我需要选择两件事:

  

1)按评分排序的N个最佳用户(ORDER BY)

     

2)通过他/她的user_id获取当前用户的评分。

如何在MongoDB中创建这些实体以及如何从中选择这些信息?

谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

由于每个用户只有一个评级,因此只需与用户一起存储评级:

{
    "user_id" : 0,
    "first_name" : "Jacob",
    "last_name" : "Welsh",
    "email" : "fake23@fake.com",
    "rating" : {
        "value" : 9001,
        "time" : ISODate("2015-02-26T20:28:54.153Z")
    }
}
  

按评分排序的N个最佳用户(ORDER BY)

db.users.find({ }).sort({ "rating" : -1 }).limit(N)

假设更高的评分更好

  

通过他/她的user_id获取当前用户的评分。

db.users.find({ "user_id" : user_id }, { "_id" : 0, "rating" : 1 })