6
Co jest nie tak z tym zapytaniem? Próbowałem uruchomić go na serwerze mongodb i otrzymałem komunikat o błędzie: "wyjątek: złe zapytanie: BadValue nieznany operator najwyższego poziomu: $ gte". Czy ktoś może mi powiedzieć, co jest z nim nie tak?
db.scores.aggregate([
{
$match: {
$or: [
{ $gte: [ "$score", 30 ] },
{ $lte: [ "$score", 60 ] }
]
}
},
{
$group: {
_id: "$gamer",
games: { $sum: 1 }
}
}
])
próbka danych:
{
"_id" : "545665cef9c60c133d2bce72",
"score" : 85,
"gamer" : "Latern"
}
/* 1 */
{
"_id" : "545665cef9c60c133d2bce73",
"score" : 10,
"gamer" : "BADA55"
}
/* 2 */
{
"_id" : "545665cef9c60c133d2bce74",
"score" : 62,
"gamer" : "BADA55"
}
/* 3 */
{
"_id" : "545665cef9c60c133d2bce75",
"score" : 78,
"gamer" : "l00ser"
}
/* 4 */
{
"_id" : "545665cef9c60c133d2bce76",
"score" : 4,
"gamer" : "l00ser"
}
/* 5 */
{
"_id" : "545665cef9c60c133d2bce77",
"score" : 55,
"gamer" : "FunnyCat"
}
Najważniejsze jest to, że ['$ match' przyjmuje składnię zapytań] (https://docs.mongodb.org/manual/reference/operator/aggregation/match/), więc chcesz użyć [query' $ operator gte' (https://docs.mongodb.org/manual/reference/operator/query/gte/), a nie operator agregacji '$ gte' (https://docs.mongodb.org/manual/ referencja/operator/agregacja/gte /). (BTW, [zapytanie zakresu] (https://docs.mongodb.org/manual/reference/method/db.collection.find/#query-for -ranges) działa poprzez użycie [implicit '$ and'] (https://docs.mongodb.org/manual/reference/operator/query/and/).) – duozmo