지난 5 분 동안 모든 새로운 것을 얻으려면 계산을해야하지만 어렵지는 않습니다 ...
먼저 일치시킬 속성에 대한 인덱스를 만듭니다 (내림차순으로 정렬 방향 -1, 오름차순으로 1 포함)
db.things.createIndex({ createdAt: -1 }) // descending order on .createdAt
그런 다음 마지막 5 분 (60 초 * 5 분) 동안 생성 된 문서를 쿼리하십시오 .getTime()
.javascript의 new Date()
생성자 는 생성자 에 대한 입력으로 사용하기 전에 1000 단위로 밀리 초를 반환해야하기 때문 입니다.
db.things.find({
createdAt: {
$gte: new Date(new Date().getTime()-60*5*1000).toISOString()
}
})
.count()
설명 new Date(new Date().getTime()-60*5*1000).toISOString()
은 다음과 같습니다.
먼저 "5 분 전"을 계산합니다.
new Date().getTime()
현재 시간을 밀리 초 단위로 제공
- 우리는 5 분 (ms 단위)을 빼고 싶습니다
5*60*1000
.-- 60
몇 초 만 곱하면 변경하기 쉽습니다. 난 그냥 변경할 수 있습니다 5
에 120
나는 2 시간 (120 분이)합니다.
new Date().getTime()-60*5*1000
우리에게 1484383878676
(5 분 전 ms)
이제 new Date()
MongoDB 타임 스탬프에 필요한 ISO 문자열 형식을 얻기 위해 생성자 에 공급해야합니다 .
{ $gte: new Date(resultFromAbove).toISOString() }
(mongodb .find () 쿼리)
- 변수를 가질 수 없으므로 한 번에 모든 작업을 수행 할 수 있습니다.
new Date(new Date().getTime()-60*5*1000)
- ... 그런 다음 ISO 문자열로 변환하십시오.
.toISOString()
new Date(new Date().getTime()-60*5*1000).toISOString()
우리에게 주어지다 2017-01-14T08:53:17.586Z
물론 node-mongodb-native 드라이버를 사용하는 경우 변수를 사용하면 조금 더 쉽습니다.하지만 이것은 일반적으로 물건을 확인하는 데 사용되는 mongo 셸에서 작동합니다.