Я новичок в mongodb, и я пытался это выяснить, но пока нет.Я думаю, что я рядом.У меня есть записи, подобные этой.
{
"_id" : ObjectId("5bfdf4385a37e507cff0ff62"),
"Search_word" : "job01",
"hadoop" : 0,
"hive" : 0,
"javascript" : 0,
"mongodb" : 0,
"sql" : 1,
"java" : 0,
"sas" : 0,
"powerbi" : 0,
"python" : 1,
"pig" : 0,
"scala" : 0
}
Я пытаюсь создать группы по поисковому слову и посчитать 1 во всех других значениях.Я никогда не использовал mongodb раньше.
Конечный результат будет выглядеть следующим образом
job01, sql : 100, hive: 205, etc...
job02, sql : 121, hive 10, etc...
В Python это буквально так:
skill_data = df.groupby (by = 'Search_word').sum ()
Я пытался сделать что-то подобное, просто чтобы получить счетчик sql, где он равен 1
db.data_final.aggregate ({"$ group":
{_id: {Search_word: "$ Search_word", sql: {"$ eq": ["$ sql", 1]}}, количество: {$ sum: 1}}})
но это дает мне 2 счета один для ложного, где sql не равен 1 и счет, который я хочу для sql, который равен 1. Как я могу избавиться от ложного?Вот что я получаю сейчас:
{"_id": {"Search_word": "job01", "sql": true}, "count": 124} // это то, что я хочутолько и сделайте это для всех других значений в одном запросе
{"_id": {"Search_word": "job01", "sql": false}, "count": 279}
Любая помощь приветствуется