caminhos
次のドキュメントのようなコレクションがあります。
"_id" : ObjectId("54e2aa2f71defd010b1caf5c"),
"data" : "2015-02-17 12:40:47",
"rua" : "Rua Caperuçu, 119–211",
"horario" : "12:40:47",
"localizacao" : {
"type" : "Point",
"coordinates" : [
-46.6452,
-23.60894
]
},
"id_usuario" : "54bef57a14b88ad70a8ab74e" }
/* 32 */ {
"_id" : ObjectId("54e387d371defd010b1caf5d"),
"data" : "2015-02-17 04:26:27",
"rua" : "Rua Camaipi, 1–83",
"horario" : "04:26:27",
"localizacao" : {
"type" : "Point",
"coordinates" : [
-46.63184,
-23.47975
]
},"id_usuario" : "54bef57a14b88ad70a8ab74e" }
/* 33 */ {
"_id" : ObjectId("54e387d471defd010b1caf5e"),
"data" : "2015-02-17 04:26:27",
"rua" : "Rua Camaipi, 1–83",
"horario" : "04:26:27",
"localizacao" : {
"type" : "Point",
"coordinates" : [
-46.63179,
-23.47985
]
},"id_usuario" : "54bef57a14b88ad70a8ab74e" }
/* 34 */ {
"_id" : ObjectId("54e387d471defd010b1caf5f"),
"data" : "2015-02-17 04:26:27",
"rua" : "Rua Camaipi, 1–83",
"horario" : "04:26:27",
"localizacao" : {
"type" : "Point",
"coordinates" : [
-46.63177,
-23.47987
]
},"id_usuario" : "54bef57a14b88ad70a8ab74e" }
id_usuario = 54bef57a14b88ad70a8ab74e
and
同じrua
値のand
異なるdata
値を持つすべてのドキュメントをグループ化し、次のグループのみを検索/選択する必要がありますcount>5
これはかなり基本的な問題のように思われ、and演算子を使用して集計パイプラインを使用して解決し、必要なものを取得できます。$group
$match
db.caminhos.aggregate([
{ $match: { id_usuario: "54bef57a14b88ad70a8ab74e" } },
{ $group: { _id: { rua: "$rua", data: "$data" } } },
{ $group: { _id: "$_id.rua", data: { $push: "$_id.data" }, count: { $sum: 1 } } },
{ $match: { count: { $gt: 5 } } }
])
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加