0
一般的なジオロケーション情報を持つドキュメントがあります。私はトップx都市を手に入れようとしています。mongodb:ドキュメントの上位x個の順位を取得する
{
"_id" : ObjectId("593b6a7068c4281a3f7702c5"),
"clientID" : "1000000000",
"session_id" : "I9Ak2k1taOGHU0Z0000000000",
"location" : {
"country" : "United States",
"city" : "Seattle",
"postal" : "98105",
"traits" : null,
"local" : "America/Los_Angeles"
},
"dateTime" : ISODate("2017-06-09T21:12:56.819+0000"),
"action" : "PLAY",....
}
私はかなりmongo、SQLから来て新しくなっています。私はこれを返す文書の範囲を取得した後、コードでそれを行うことなく、&集計を使用して行うことを望んでいた。
私はこれらのドキュメントをsession_idでグループ化する方法を理解しました。これで降順でソートされた都市数のインスタンスを追加し、それらの都市を表示するだけです。
私のグループクエリ:任意の洞察力のための
db.Playerstats.aggregate(
// Pipeline
[
// Stage 1 for tests
{
$match: {
clientID: "1000000000"
}
},
// Stage 2
{
$group: {
_id : "$session_id",
start: { $first: "$dateTime"},
stop: { $last: "$dateTime"},
eventID : { $addToSet: "$eventID"},
status : { $addToSet: "$eventStatus"},
browser: { $addToSet: "$browser.userAgent"},
OS : { $addToSet: "$browser.platform"},
city : { $addToSet: "location.city"},
p2pData : { $sum: "$p2p.totalVerifiedBytes"},
actions : { $addToSet: "$action"}
}
},
// Stage 3
{
$sort: {
startDate: -1
}
},
],
);
感謝。
何を試しましたか?問題には何も試みられていないことは何もありません。あなたが試してみたら、あなたが理解していない部分であなたを導くことができます。しかし、そこにはたくさんの例があります。 { \t \t \t \t _id:[集計マッピングチャートにSQL](https://docs.mongodb.com/manual/reference/sql-aggregation-comparison/) –
Iは{ \t \t \t $基を試みました。 { \t \t \t CUST_ID: "$市"、 \t \t \t数:{???} \t \t \t} \t \t \t} \t \t}、 私の質問のステージ3の後に投稿しました。 {_id \t \t \t \t: "$市"、 \t \t \t数:{$合計:1} が、私はグループ化 – user978791
からこれらの数を合計する方法として失われていますが.. $グループをそれを考え出しました\t \t \t \t \t \t ちょうどそれが間違っていた。 TY – user978791