如何使用mongodb中的条件

时间:2017-09-29 19:33:54

标签: sql mongodb

我有一个mongodb的集合,其中包含" MoviesID,UserID,Rating",所以这是描述用户如何评价不同的电影,用户可以评价不同的电影,当然还有电影可以由不同的用户评分。现在我想找到所有用目标用户评价类似电影的用户(例如:用户5)。对类似电影进行评级意味着他们至少评价相同的电影或更多。那么我应该如何找到所有用户5评价类似电影的用户呢?我刚开始学习mongodb。谢谢!

2 个答案:

答案 0 :(得分:0)

要查询MongoDB集合中的数据,您需要使用MongoDB的find()方法。

find()方法的基本语法如下 -

>db.COLLECTION_NAME.find()

答案 1 :(得分:0)

我们假设您有这样的集合:

{
   movie: 1,
   user: 1,
   rating: 5
}, {
   movie: 2,
   user: 5,
   rating: 5
}, {
   movie: 3,
   user: 5,
   rating: 3
}

您可以在这里找到由用户5评分的所有电影,如下所示:

db.collection.distinct("movie", { user: 5 }, function(err, movies) {
    // Will return array of distinct values for movies, where user is equal to 5.
    // From our collection above, this query will return [ 2, 3 ].

})

然后:

db.collection.find({ movie: { $in: movies } }, function(err, result) {
    // Then we'll find the documents where movie is in the movies which
    // returned on our first query.
    // This will return [{ user: 5, ... }, { user: 1, ... }]
})

我只能想到在两个查询中这样做。我还在考虑是否可以使用聚合来完成此操作。

我希望这会有所帮助。