[MONGODB] 작동하지 않는 것 MongoDB를에 ISODate와 날짜 쿼리
MONGODB작동하지 않는 것 MongoDB를에 ISODate와 날짜 쿼리
나는 MongoDB의에서 일할 심지어 가장 기본적인 날짜 쿼리를 얻을 수있을 것 같지 않습니다. 이 같은 형태의 문서로 :
{
"_id" : "foobar/201310",
"ap" : "foobar",
"dt" : ISODate("2013-10-01T00:00:00.000Z"),
"tl" : 375439
}
그리고 쿼리 같은 모습이 :
{
"dt" : {
"$gte" : {
"$date" : "2013-10-01T00:00:00.000Z"
}
}
}
나는 실행에서 0 결과를 얻을 수 있습니다 :
db.mycollection.find({
"dt" : { "$gte" : { "$date" : "2013-10-01T00:00:00.000Z"}}
})
문제가 해결되지 않는 이유 어떤 생각?
내가 궁극적으로 MongoDB를로 전송되는 쿼리를 직접 제어 할 필요가 없습니다 참고로,이 쿼리는 봄의 MongoTemplate에 의해 생산되고있다.
(추신.)
> db.version()
2.4.7
감사!
해결법
-
==============================
1.$ 날짜가 MongoDB를 확장 JSON의 일부이며 그건 당신이 mongoexport 기본적으로 무엇을 얻을하지만 난 당신이 정말 쿼리의 일부로 사용할 수 있다고 생각하지 않습니다.
$ 날짜가 MongoDB를 확장 JSON의 일부이며 그건 당신이 mongoexport 기본적으로 무엇을 얻을하지만 난 당신이 정말 쿼리의 일부로 사용할 수 있다고 생각하지 않습니다.
시도는 정확히 다음과 같은 $ 날짜를 검색하는 경우 :
db.foo.find({dt: {"$date": "2012-01-01T15:00:00.000Z"}})
당신은 오류가 발생합니다 :
error: { "$err" : "invalid operator: $date", "code" : 10068 }
이 시도:
db.mycollection.find({ "dt" : {"$gte": new Date("2013-10-01T00:00:00.000Z")} })
또는 (@ user3805045로 의견을 다음) :
db.mycollection.find({ "dt" : {"$gte": ISODate("2013-10-01T00:00:00.000Z")} })
ISODate도 (@MattMolnar에 의해 언급) 시간없이 날짜를 비교해야 할 수 있습니다.
몽고 셸의 데이터 유형에 따라 모두 동일해야 :
및 ISODate를 사용하는 것은 여전히 Date 객체를 반환해야합니다.
{ "$ 날짜": "ISO-8601 문자열은"} 엄격한 JSON 표현이 필요한 경우 사용할 수 있습니다. 한 가지 예는 하둡 커넥터이다.
-
==============================
2.MongoDB의 요리 책 페이지의 댓글에서 :
MongoDB의 요리 책 페이지의 댓글에서 :
"dt" : { "$gte" : ISODate("2014-07-02T00:00:00Z"), "$lt" : ISODate("2014-07-03T00:00:00Z") }
이것은 나를 위해 일했다. 전체 맥락에서, 다음 명령은 DT 날짜 필드 2013년 10월 1일 (YYYY-MM-DD) 줄루어에 날짜가 모든 레코드를 가져옵니다
db.mycollection.find({ "dt" : { "$gte" : ISODate("2013-10-01T00:00:00Z"), "$lt" : ISODate("2013-10-02T00:00:00Z") }})
-
==============================
3.이 시도:
이 시도:
{ "dt" : { "$gte" : ISODate("2013-10-01") } }
-
==============================
4.나는 MongoDB를 클라이언트 GUI로 robomongo를 사용하고 그리고 아래 나를 위해 일한
나는 MongoDB를 클라이언트 GUI로 robomongo를 사용하고 그리고 아래 나를 위해 일한
db.collectionName.find({"columnWithDateTime" : { $lt:new ISODate("2016-02-28T00:00:00.000Z")}})
응용 프로그램 측면에서 나는 기반 드라이버 MongoDB를 (v1.4.3), YYYY-MM-DD와 같은 날짜를 제공하는 UI의 응용 프로그램 사용의 날짜 선택기를 nodejs를 사용하고,이 후 주어진 다음 00:00:00 같은 기본 시간이 추가됩니다 새로운 날짜 () 생성자에 다음 기준이 오브젝트 MongoDB를 공급, 내가 드라이버 변환 ISO 날짜에 날짜와 다음 작동하고 원하는 출력을 제공하는 쿼리를 생각하지만 같은 새 Date () 생성자는하지 작업을 수행하거나 동일 보여 내 기준 개체를 확인 건너 robomongo을 사용하기 때문에, 이상한 동일한 기준에 대한 로보 몽고에 출력.
기본 CLI의 mongoshell)는 (ISODate 새로운 일 모두 잘 작동하는 반면
-
==============================
5.JSON 엄격 모드에서는 순서를 유지해야합니다 :
JSON 엄격 모드에서는 순서를 유지해야합니다 :
{ "dt": { "$gte": { "$date": "2013-10-01T00:00:00.000Z" } } }
mlab.com 내 검색 쿼리를 정의하기 위해 노력 만 것.
-
==============================
6.MongoDB의 쉘에서 :
MongoDB의 쉘에서 :
db.getCollection('sensorevents').find({from:{$gt: new ISODate('2015-08-30 16:50:24.481Z')}})
내 nodeJS 코드에서 (몽구스 사용)
SensorEvent.Model.find( { from: { $gt: new Date( SensorEventListener.lastSeenSensorFrom ) } } )
'보낸 사람'필드가 지정된 일자보다 큰 어디 반환 값에 내 센서 이벤트 수집을 조회하고
-
==============================
7.이 내 문서입니다
이 내 문서입니다
"_id" : ObjectId("590173023c488e9a48e903d6"), "updatedAt" : ISODate("2017-04-27T04:26:42.709Z"), "createdAt" : ISODate("2017-04-27T04:26:42.709Z"), "flightId" : "590170f97cb84116075e2680", "_id" : ObjectId("590173023c488e9a48e903d6"), "updatedAt" : ISODate("2017-04-28T03:26:42.609Z"), "createdAt" : ISODate("2017-04-28T03:26:42.609Z"), "flightId" : "590170f97cb84116075e2680",
지금 내가이 사용 document.so 모든 27 일 날짜를 찾으려면 ....
> db.users.find({createdAt:{"$gte":ISODate("2017-04-27T00:00:00Z"),"$lt":ISODate("2017-04-28T00:00:00Z") }}).count() result:1
이 날 위해 일했습니다.
-
==============================
8.이하의 값을 검색하거나 지금보다 동일하면서 이것은 나를 위해 일한 :
이하의 값을 검색하거나 지금보다 동일하면서 이것은 나를 위해 일한 :
db.collectionName.find({ "dt": { "$lte" : new Date() + "" } });
from https://stackoverflow.com/questions/19819870/date-query-with-isodate-in-mongodb-doesnt-seem-to-work by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] 몽구스, 발견과 특정 필드를 선택 (0) | 2019.12.03 |
---|---|
[MONGODB] MongoDB의 두 컬렉션을 병합 (0) | 2019.12.03 |
[MONGODB] MongoDB를 / 몽구스 특정 날짜에 쿼리? (0) | 2019.12.03 |
[MONGODB] 어떻게 고정 표시기-작성을 사용하여 몽고 데이터베이스를 씨앗합니까? (0) | 2019.12.03 |
[MONGODB] MongoDB를 데이터베이스에 저장 이미지 (0) | 2019.12.03 |