Установите окно, чтобы пометить каждый сеанс холостого ходаJavascript

Форум по Javascript
Ответить Пред. темаСлед. тема
Anonymous
 Установите окно, чтобы пометить каждый сеанс холостого хода

Сообщение Anonymous »

У меня есть набор данных, который входит и выходит из холостого хода, и я хочу дать каждому сеансу холостого хода идентификатор < /p>

Код: Выделить всё

{
_id: ObjectId('67ba93d7f883e7c506027022'),
device_id: 'ABC123',
timestamp: ISODate('2025-02-22T10:00:00.000Z'),
status: 'active',
location: { lat: 40.7128, lng: -74.006 },
prev_status: null,
prev_timestamp: null,
new_idle_session: 1
},
{
_id: ObjectId('67ba93d7f883e7c506027023'),
device_id: 'ABC123',
timestamp: ISODate('2025-02-22T10:05:00.000Z'),
status: 'idle',
location: { lat: 40.713, lng: -74.007 },
prev_status: 'active',
prev_timestamp: ISODate('2025-02-22T10:00:00.000Z'),
new_idle_session: 1
},
{
_id: ObjectId('67ba93d7f883e7c506027024'),
device_id: 'ABC123',
timestamp: ISODate('2025-02-22T10:10:00.000Z'),
status: 'idle',
location: { lat: 40.7135, lng: -74.008 },
prev_status: 'idle',
prev_timestamp: ISODate('2025-02-22T10:05:00.000Z'),
new_idle_session: 0
},
{
_id: ObjectId('67ba93d7f883e7c506027025'),
device_id: 'ABC123',
timestamp: ISODate('2025-02-22T10:15:00.000Z'),
status: 'idle',
location: { lat: 40.714, lng: -74.009 },
prev_status: 'idle',
prev_timestamp: ISODate('2025-02-22T10:10:00.000Z'),
new_idle_session: 0
},
{
_id: ObjectId('67ba93d7f883e7c506027026'),
device_id: 'ABC123',
timestamp: ISODate('2025-02-22T10:20:00.000Z'),
status: 'active',
location: { lat: 40.7145, lng: -74.01 },
prev_status: 'idle',
prev_timestamp: ISODate('2025-02-22T10:15:00.000Z'),
new_idle_session: 0
},
{
_id: ObjectId('67ba93d7f883e7c506027027'),
device_id: 'ABC123',
timestamp: ISODate('2025-02-22T10:30:00.000Z'),
status: 'idle',
location: { lat: 40.715, lng: -74.011 },
prev_status: 'active',
prev_timestamp: ISODate('2025-02-22T10:20:00.000Z'),
new_idle_session: 1
},
{
_id: ObjectId('67ba93d7f883e7c506027028'),
device_id: 'ABC123',
timestamp: ISODate('2025-02-22T10:40:00.000Z'),
status: 'idle',
location: { lat: 40.7155, lng: -74.012 },
prev_status: 'idle',
prev_timestamp: ISODate('2025-02-22T10:30:00.000Z'),
new_idle_session: 0
},
{
_id: ObjectId('67ba93d7f883e7c506027029'),
device_id: 'ABC123',
timestamp: ISODate('2025-02-22T10:50:00.000Z'),
status: 'active',
location: { lat: 40.716, lng: -74.013 },
prev_status: 'idle',
prev_timestamp: ISODate('2025-02-22T10:40:00.000Z'),
new_idle_session: 0
},
{
_id: ObjectId('67ba93d7f883e7c50602702a'),
device_id: 'ABC123',
timestamp: ISODate('2025-02-22T11:00:00.000Z'),
status: 'idle',
location: { lat: 40.7165, lng: -74.014 },
prev_status: 'active',
prev_timestamp: ISODate('2025-02-22T10:50:00.000Z'),
new_idle_session: 1
},
{
_id: ObjectId('67ba93d7f883e7c50602702b'),
device_id: 'ABC123',
timestamp: ISODate('2025-02-22T11:10:00.000Z'),
status: 'idle',
location: { lat: 40.717, lng: -74.015 },
prev_status: 'idle',
prev_timestamp: ISODate('2025-02-22T11:00:00.000Z'),
new_idle_session: 0
}
]
< /code>
Я бы хотел, чтобы каждый раз, когда идентификатор сеанса выглядел так < /p>
  {
"device_id": "ABC123",
"timestamp": ISODate("2025-02-22T10:00:00.000Z"),
"status": "active",
"location": { "lat": 40.7128, "lng": -74.006 },
"new_idle_session": 1,
"idle_session_id": 1
},
{
"device_id": "ABC123",
"timestamp": ISODate("2025-02-22T10:05:00.000Z"),
"status": "idle",
"location": { "lat": 40.713, "lng": -74.007 },
"new_idle_session": 1,
"idle_session_id": 1
},
{
"device_id": "ABC123",
"timestamp": ISODate("2025-02-22T10:10:00.000Z"),
"status": "idle",
"location": { "lat": 40.7135, "lng": -74.008 },
"new_idle_session": 0,
"idle_session_id": 1
},
{
"device_id": "ABC123",
"timestamp":  ISODate("2025-02-22T10:15:00.000Z"),
"status": "idle",
"location": { "lat": 40.714, "lng": -74.009 },
"new_idle_session": 0,
"idle_session_id": 1
},
{
"device_id": "ABC123",
"timestamp": ISODate("2025-02-22T10:20:00.000Z"),
"status": "active",
"location": { "lat": 40.7145, "lng": -74.01 },
"new_idle_session": 0,
"idle_session_id": 1
},
{
"device_id": "ABC123",
"timestamp": ISODate("2025-02-22T10:30:00.000Z"),
"status": "idle",
"location": { "lat": 40.715, "lng": -74.011 },
"new_idle_session": 1,
"idle_session_id": 2
},
{
"device_id": "ABC123",
"timestamp": ISODate("2025-02-22T10:40:00.000Z"),
"status": "idle",
"location": { "lat": 40.7155, "lng": -74.012 },
"new_idle_session": 0,
"idle_session_id": 2
},
{
"device_id": "ABC123",
"timestamp": ISODate("2025-02-22T10:50:00.000Z"),
"status": "active",
"location": { "lat": 40.716, "lng": -74.013 },
"new_idle_session": 0,
"idle_session_id": 2
},
{
"device_id": "ABC123",
"timestamp": ISODate("2025-02-22T11:00:00.000Z"),
"status": "idle",
"location": { "lat": 40.7165, "lng": -74.014 },
"new_idle_session": 1,
"idle_session_id": 3
},
{
"device_id": "ABC123",
"timestamp": ISODate("2025-02-22T11:10:00.000Z"),
"status": "idle",
"location": { "lat": 40.717, "lng": -74.015 },
"new_idle_session": 0,
"idle_session_id": 3
}
]
< /code>
И я использовал это, но это настройка все на 4 < /p>
      "$setWindowFields": {
"partitionBy": "$device_id",
"sortBy": { "timestamp": 1 },
"output": {
"idle_session_id": {
"$sum": "$new_idle_session"
}
}
}
}
Что я могу разделить, чтобы получить сеансы на холостое ходу>

Подробнее здесь: https://stackoverflow.com/questions/794 ... le-session
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Javascript»