6
我有一個MYSQL表,其中包含人名記錄以及到達時間,表示爲一個數字。把它想象成馬拉松。我想知道有多少人進抵的時間有一定的差距誰在那裏命名一樣,所以:遷移到MongoDB:如何查詢GROUP BY + WHERE
SELECT name, COUNT(*) FROM mydb.mytable
WHERE Time>=100 AND Time<=1000
GROUP BY name
而作爲結果我得到:
Susan, 1
John, 4
Frederick, 1
Paul, 2
我遷移到現在的MongoDB,並使用Python進行編碼(所以我要求Pymongo的幫助)。我試圖尋找關於GROUP BY等價物的信息(即使當我讀到NoSQL數據庫在這種操作上比SQL更糟糕)時,但是由於他們發佈了新的agreggate API,我無法找到像這樣的簡單例子通過組方法,Map-Reduce方法或全新的agreggate API解決。
任何幫助?
我覺得用$名字是什麼疑問讓我如何做到這一點,因爲name是數據庫中字段的名稱,而不是pymongo標籤。爲什麼要通過表達方式來組合這個字段的名稱? –
@RomanRdgz如果我是誠實的,我不知道,這是一個設計決定,你不得不去問10gen,然而,如果沒有'$'這個字符串在MongoDB中被視爲字面值,它就是'$' MongoDB的反應就像是一個字段值 – Sammaye