我有一个mongodb的集合,其中包含" MoviesID,UserID,Rating",所以这是描述用户如何评价不同的电影,用户可以评价不同的电影,当然还有电影可以由不同的用户评分。现在我想找到所有用目标用户评价类似电影的用户(例如:用户5)。对类似电影进行评级意味着他们至少评价相同的电影或更多。那么我应该如何找到所有用户5评价类似电影的用户呢?我刚开始学习mongodb。谢谢!
答案 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, ... }]
})
我只能想到在两个查询中这样做。我还在考虑是否可以使用聚合来完成此操作。
我希望这会有所帮助。