2017-09-29 2 views
0

私は "MoviesID、UserID、Rating"を含むmongodbのコレクションを持っています。これはユーザーが異なる映画を評価する方法を説明するもので、ユーザーは別の映画を映画は異なるユーザによって評価されることができる。今では、ターゲットユーザーと同じような映画を評価しているすべてのユーザーを探したいとします(例:ユーザー5)。同様の映画を評価すると、少なくとも同じ映画以上の評価を受けることになります。だから私はどのようにユーザー5と同様の映画を評価するすべてのユーザーを見つける必要がありますか?私はmongodbの学習を始めます。ありがとう!mongodbのどこでの使用方法

答えて

0

MongoDBコレクションからデータをクエリするには、MongoDBのfind()メソッドを使用する必要があります。次のように

基本的な検索の構文()メソッドがある -

>db.COLLECTION_NAME.find() 
0

のは、あなたがこのようなコレクションを持っているとしましょう:あなたがここに何ができるか

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

はすべてを見つけることですその後、

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 ]. 

}) 

:このようなユーザ5で評価され、映画、 :

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, ... }] 
}) 

これは2つのクエリでしか考えられません。 集約を使ってこれができるのであれば、私はまだ考えています。

こちらがお役に立てば幸いです。

+0

ありがとうございます!私はこれがうまくいくと思います。しかし、私はどのようにユーザー:5を結果にドロップするのですか?つまり、それはそれ自体に似ていません。 –

+0

と入力したい場合はどうすればいいですか?入力を取得してクエリを実行するにはPythonを使用する必要がありますか? –

関連する問題