[MONGODB] 날짜를 기준으로 반환 쿼리
MONGODB날짜를 기준으로 반환 쿼리
나는 MongoDB의에서이 같은 데이터를
{
"latitude" : "",
"longitude" : "",
"course" : "",
"battery" : "0",
"imei" : "0",
"altitude" : "F:3.82V",
"mcc" : "07",
"mnc" : "007B",
"lac" : "2A83",
"_id" : ObjectId("4f0eb2c406ab6a9d4d000003"),
"createdAt" : ISODate("2012-01-12T20:15:31Z")
}
때문에 반환하는 위의 데이터는 DB에서 나에게 결과 : 어떻게 ({?? ?? 여기에 무슨 createdAt을 '}) db.gpsdatas.find 쿼리합니까?
해결법
-
==============================
1.당신은 아마 예를 들어, 모든 항목이 지정된 날짜 이후에 생성, 다양한 쿼리를 만들고 싶어 :
당신은 아마 예를 들어, 모든 항목이 지정된 날짜 이후에 생성, 다양한 쿼리를 만들고 싶어 :
db.gpsdatas.find({"createdAt" : { $gte : new ISODate("2012-01-12T20:15:31Z") }});
이 종종 시간 구성 요소 00:00:00 날짜 만 쿼리에 사용되는 때문에, (보다 크거나 같음) $ GTE를 사용하고 있습니다.
당신이 정말로 다른 날짜에 해당 날짜를 찾으려면, 구문은 것
db.gpsdatas.find({"createdAt" : new ISODate("2012-01-12T20:15:31Z") });
-
==============================
2.당신은 하루의 시작, 하루의 끝을 얻기 위해이 같은 첫 번째 떨어져 두 날짜를 만들 수 있습니다.
당신은 하루의 시작, 하루의 끝을 얻기 위해이 같은 첫 번째 떨어져 두 날짜를 만들 수 있습니다.
var startDate = new Date(); // this is the starting date that looks like ISODate("2014-10-03T04:00:00.188Z") startDate.setSeconds(0); startDate.setHours(0); startDate.setMinutes(0); var dateMidnight = new Date(startDate); dateMidnight.setHours(23); dateMidnight.setMinutes(59); dateMidnight.setSeconds(59); ### MONGO QUERY var query = { inserted_at: { $gt:morning, $lt:dateScrapedMidnight } }; //MORNING: Sun Oct 12 2014 00:00:00 GMT-0400 (EDT) //MIDNIGHT: Sun Oct 12 2014 23:59:59 GMT-0400 (EDT)
-
==============================
3.그냥 노드 v0.12.7 및 v4.4.4 및 사용을 사용하여 몽고의 v3.2.3에서 비슷한 구현되었다 :
그냥 노드 v0.12.7 및 v4.4.4 및 사용을 사용하여 몽고의 v3.2.3에서 비슷한 구현되었다 :
{ $gte: new Date(dateVar).toISOString() }
사용하거나 toISOString 기능이없는 .find이 작품 () 쿼리 (00Z : 00 예를 들어, 2016-04-22T00) 나는 ISODate를 전달하고있다. .aggregate () $ 일치하는 쿼리에 사용하지만 그것은 toISOString 기능처럼하지 않습니다!
-
==============================
4.당신이 지난 5 분 안에 모든 새로운 것을 얻고 싶다면 당신은 몇 가지 계산을해야하지만, 하드 않을 것이다 ...
당신이 지난 5 분 안에 모든 새로운 것을 얻고 싶다면 당신은 몇 가지 계산을해야하지만, 하드 않을 것이다 ...
먼저 당신이 일치하려는 속성에 인덱스를 생성 (오름차순에 대한 일종의 하강에 대한 방향 -1과 1 포함)
db.things.createIndex({ createdAt: -1 }) // descending order on .createdAt
새 날짜 () 생성자에 대한 입력으로 사용하기 전에 다음 쿼리 최근 5 분에서 만든 문서 (60 초 5 분 *) ... 자바 스크립트의 .getTime () 반환 밀리 초 때문에 당신은 1000 mulitply해야합니다.
db.things.find({ createdAt: { $gte: new Date(new Date().getTime()-60*5*1000).toISOString() } }) .count()
새 날짜에 대한 설명 (. 새 Date () 다음 getTime () - 60 * 1000 * 5) .toISOString는 ()로 다음 있습니다 :
먼저 우리는 "분 전"계산 :
이제 우리는 MongoDB를가 타임 스탬프를 필요로하는 ISO의 문자열 형식을 얻기 위해 새 Date () 생성자에 그 먹이를해야합니다.
물론 이것은 당신이 노드 MongoDB의 네이티브 드라이버를 사용하는 경우 변수,하지만 일반적으로 물건을 확인하는 데 사용하는 것입니다 몽고 쉘에서이 작품에 좀 더 쉽게입니다.
-
==============================
5.당신은 또한 시도 할 수 있습니다 :
당신은 또한 시도 할 수 있습니다 :
{ "dateProp": { $gt: new Date('06/15/2016').getTime() } }
-
==============================
6.당신은 몽구스를 사용하는 경우,
당신은 몽구스를 사용하는 경우,
try { const data = await GPSDatas.aggregate([ { $match: { createdAt : { $gt: new Date() } }, { $sort: { createdAt: 1 } } ]) console.log(data) } catch(error) { console.log(error) }
-
==============================
7.특정 날짜로 찾기 :
특정 날짜로 찾기 :
db.getCollection('CollectionName').find({"DepartureDate" : new ISODate("2019-06-21T00:00:00.000Z")})
큰 GTE 또는 작은 LT로 찾기 :
db.getCollection('CollectionName').find({"DepartureDate" : { $gte : new ISODate("2019-06-11T00:00:00.000Z") }})
범위에서 찾기 :
db.getCollection('CollectionName').find({ "DepartureDate": { $lt: new Date(), $gte: new Date(new Date().setDate(new Date().getDate()-15)) } })
from https://stackoverflow.com/questions/8835757/return-query-based-on-date by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] 'MODULE_NOT_FOUND'} JS-bson : 모듈 '../build/Release/bson'] 코드를 찾을 수 없습니다 부하 C ++ bson 확장, 순수 JS 버전을 사용하여 실패 (0) | 2019.12.07 |
---|---|
[MONGODB] 몽구스 (MongoDB를) 일괄 삽입? (0) | 2019.12.07 |
[MONGODB] 어떻게 몽고 콘솔에서의 ObjectId가에 의해 객체를 검색 할 수 있습니까? (0) | 2019.12.07 |
[MONGODB] MongoDB를이 : 하나 개의 필드에있는 모든 문서를 업데이트 (0) | 2019.12.07 |
[MONGODB] '꽤'파일로 MongoDB의 쉘 출력을 인쇄하는 방법은 무엇입니까? (0) | 2019.12.07 |