У меня есть документы с точками GeoJSON, и я хочу их подсчитать по квадрату с помощью координат. Для этого я вычитаю свою широту/долготу с модулем той же широты/долготы и размерностью квадрата.
я получил ошибку:
"errmsg" : "$mod only supports numeric types, not Array and NumberDouble"
Я не понимаю, потому что я использую точечную нотацию для извлечения широты и долготы. Почему он говорит, что это массив?
У меня не было проблем с использованием одного и того же запроса, но с координатами, хранящимися в двух разных свойствах, а не внутри одного и того же массива.
Пример документа:
{
"_id" : ObjectId("560dcd15491a065d6ab1085c"),
"nodeLoc" :
{
"type" : "Point",
"coordinates" :
[
2.352221,
48.856612
]
}
}
Aggregation:
db.collection.aggregate(
[
{
$group:
{
_id:
{
latGroup: {$subtract: ["$nodeLoc.coordinates.1", {$mod: ["$nodeLoc.coordinates.1", 0.5]}]},
lonGroup: {$subtract: ["$nodeLoc.coordinates.0", {$mod: ["$nodeLoc.coordinates.0", 0.5]}]},
},
count: {$sum: 1}
}
}
]
)
Я ожидаю, что результат, как это:
latGroup : 2 lonGroup : 48,5 count : 1
...
Заранее спасибо
Благодарим за помощь – SwissFr