对于MongoDB上的课程,我被要求过滤所有在一部电影中同时出现在作家,演员和导演中的同名电影。 基本上,我尝试在一个数据集中找到重叠的内容。
经过大量实验后,我为我简化了问题。现在,我只尝试在Directors和Cast字段中使用相同的名称。
我最好能给出0个结果:
pipeline = [
{"$project": {"_id":0, "directors": 1, "cast": 1, "title": 1, "dirscount": { "$size": "$directors" } }},
{"$unwind": "$directors"},
{"$match": {"cast": {"$in": ["$directors"]}}},
{"$limit": 20},
{"$sort": {"title": 1}}
]
display(list(movies.aggregate(pipeline)))
这行给我带来了最大的麻烦,难以理解这行:{“ $ match”:{“ cast”:{“ $ in”:[“ $ director”]}}}
如果我在$ in运算符之间放置一个实名,则可以正常使用。
问题出在哪里?
谢谢。