#mongodb
Вопрос:
У меня есть mongodb версии 4.4.3, и я получил в какой — то коллекции существующую структуру с ts
столбцом данных со значением наносекунд, например 1.6134264584976e 18
. Моя цель — получить все документы, в которых текущая отметка времени — ts
> = 25 минут>
Что я нашел {$ToDate: ‘$ts’} преобразуйте мои в milisend
db.getCollection('device_heartbeat').aggregate( [ {
$project: {
date: {$toDate: '$ts'}
}
}
]
)
Результат
"date" : Date(1613426458497597952)
как добавить условие в этот запрос ?
Ответ №1:
Я решил свою проблему, это запрос
db.getCollection('device_heartbeat').aggregate([
{$match: { $expr: { $gt: [ { $subtract: [ {$toLong: new Date()}, { $divide: [ {$toLong: {$toDate: '$ts'}} , 1000000 ] } ] }, 1500 ] }}},
{$project: {
diff: { $subtract: [ {$toLong: new Date()}, { $divide: [ {$toLong: {$toDate: '$ts'}} , 1000000 ] } ] }
}}
])