我有一个包含 18625 个集合的 mongodb 数据库。它有以下键:
"_id" : ObjectId("5aab14d2fc08b46adb79d99c"),
"game_id" : NumberInt(4),
"score_phrase" : "Great",
"title" : "NHL 13",
"url" : "/games/nhl-13/ps3-128181",
"platform" : "PlayStation 3",
"score" : 8.5,
"genre" : "Sports",
"editors_choice" : "N",
"release_year" : NumberInt(2012),
"release_month" : NumberInt(9),
"release_day" : NumberInt(11)
Run Code Online (Sandbox Code Playgroud)
现在,我希望创建仅包含流派的另一个维度/集合。
如果我使用以下查询:
db.ign.aggregate([ {$project: {"genre":1}}, { $out: "dimen_genre" } ]);
Run Code Online (Sandbox Code Playgroud)
它生成了 18625 个集合,尽管只有 113 个不同的流派。
如何在此处应用 distinct 并获取仅具有不同 113 个值的流派的集合。我用谷歌搜索,它表明聚合和不同在 mongo 中不能一起工作。我也试过:db.dimen_genre.distinct('genre').length 这表明在维度_流派中,有 113 种不同的流派。
确切地说,如何从只有不同值的现有集合中创建集合。
我对 NoSQL 真的很陌生。
我已经使用以下代码安装了 Telethon:
sudo pip3 install telethon
Run Code Online (Sandbox Code Playgroud)
我尝试重新安装它并收到以下消息:
Requirement already satisfied: pyasn1>=0.1.3 in /usr/local/lib/python3.7/site-packages (from rsa->telethon) (0.4.5)
Run Code Online (Sandbox Code Playgroud)
但是当我在我的代码中使用它时:
from telethon import TelegramClient
Run Code Online (Sandbox Code Playgroud)
它显示以下错误:
ModuleNotFoundError: No module named 'telethon'
Run Code Online (Sandbox Code Playgroud)
我应该去哪里纠正这个错误?