Используя Mongodb, я хочу получить количество значений датчиков выше 100 и значений датчиков ниже 100 для каждого конкретного региона (группы по регионам).
У меня есть свойство sensorValue, и оно имеет 4 под-свойства, а именно.1) sensorValue (значения будут 100, 200, 122, 80 и т. Д.) - я хочу знать количество выше 100 и ниже 100 на регион.2) Широта 3) Долгота 4) Регион (название региона) - я хочу подсчет относительно этого региона.
С помощью stackoverflow я написал следующий запрос.
getProximityIntervalRate = (req, res) => {
console.log("entered1")
this.model = ProximityLocation;
const startDate = req.headers.startdate, endDate = req.headers.enddate;
console.log(req.headers, startDate, endDate);
// TODO: server validatoin
this.model.aggregate([
{ $match: { 'observationTimestamp': { $gte: new Date(startDate), $lte: new Date(endDate) } } },
{
$project: {
regoin: 1,
lessthan: {
$cond: [{ $lt: ["$sensorValue.sensorValue", 5] }, 1, 0]
},
morethan: {
$cond: [{ $gt: ["$sensorValue.sensorValue", 5] }, 1, 0]
}
}
},
{
$group: { _id: { regoin: "$sensorValue.regoin" },
countSmaller: { $sum: "$lessThan" },
countBigger: { $sum: "$moreThan" } uh
}
},
], (err, location) => {
console.log('location', location);
if (!location) { return res.sendStatus(404); }
res.status(200).json(location);
});
}
Я не уверен, как обратиться к подвойству «sensorValue.regoin» в опции «$ project». Пожалуйста, дайте мне знать, если я что-то упустил.
![Sample Document is attached](https://i.stack.imgur.com/gxMDh.png)