如何将 mongodb 查询转换为 pymongo

how to convert mongodb query to pymongo

我有一个mongodb的集合,其中包含"MoviesID, UserID, Rating",所以这是描述用户如何评价不同的电影,一个用户可以评价不同的电影,肯定是一部电影可以被不同的用户评价。现在我想找到所有与目标用户评价相似电影的用户。对相似的电影进行评级意味着他们至少对同一部电影或更多电影进行评级。我的方法是找到目标用户的所有电影,然后查询同样评价这些电影的用户。我有以下 mongo shell 查询,并且有效:

var a = db.ratings.distinct("MovieID",{"UserID":"user"});
db.ratings.distinct("UserID",{"MovieID":{$in:a}}))

但是因为我想要输入,所以我尝试了 pymongo 来获取输入,我的代码是:

import sys
import pymongo
import re
import codecs

from pymongo import MongoClient
client = MongoClient()

db = client['moviesdb']

user = input("Enter the user: ")

# #ratings = db.ratings

from bson.son import SON



import pprint

a = db.ratings.distinct("MovieID",{"UserID":"user"});
pprint.pprint(db.ratings.distinct("UserID",{"MovieID":{"$in":a}}));

但结果是一个空数组,不知为何。那么pymongo代码有什么问题呢?或者有什么方法可以在 shell 中获取输入,这样我就不需要编写 Pymongo 了吗?谢谢!

简单的飞行员错误。变化

a = db.ratings.distinct("MovieID",{"UserID":"user"});

a = db.ratings.distinct("MovieID",{"UserID":user});