#mongodb #express #mongoose #mern
#mongodb #экспресс #мангуст #mern
Вопрос:
Здесь у меня есть даты (т.е. обновленные) с «2020-10-28T09:20: 14.335Z» и «2020-10-30T09: 20:35.086Z» . как я могу отфильтровать данные по определенной дате (например: 2020-10-28).
Данные с сервера
[
{
"_id": "5f9bdace778082303c859248",
"createdAt": "2020-10-28T09:20:14.335Z",
"updatedAt": "2020-10-28T09:20:14.335Z",
"__v": 0
},
{
"_id": "5f9bdae3778082303c859249",
"createdAt": "2020-10-30T09:20:35.086Z",
"updatedAt": "2020-10-30T09:20:35.086Z",
"__v": 0
}
]
маршрут: он выдает пустой массив, как заставить его работать?
Attendance.find({ "updatedAt": { "$gte": "2020-10-28", "$lte": "2020-10-28" } })
.then(data => res.json(data))
.catch(err => res.status(400).json('Error: ' err));
маршрут: но это работает
Attendance.find({ "updatedAt": { "$gte": "2020-10-28T09:20:14.335Z", "$lte": "2020-10-28T09:20:14.335Z" } })
.then(data => res.json(data))
.catch(err => res.status(400).json('Error: ' err));
Ответ №1:
Один из способов использования агрегации
db.collection.aggregate([
{
$addFields: {
"updatedAt": {
"$substr": [
"$updatedAt",
0,
10
]
}
}
},
{
$match: {
"updatedAt": {
"$gte": "2020-10-28",
"$lte": "2020-10-28"
}
}
}
])
Рабочая игровая площадка Mongo