1
MongoDb에 매우 익숙하며 시계열 데이터를 저장하는 데 사용할 수 있는지 실험하고 있습니다. I는 다음과 같은 데이터를 삽입Robomongo를 사용하여 dateTimes 사이에 중첩 배열을 검색하는 MongoDb
...
{
"_id" : ObjectId("5785f186ed936527c05efa10"),
"Timestamp" : ISODate("2006-07-13T07:42:00.000Z"),
"Label1" : "Lab1",
"Attr" : "atrr1",
"Readings" : [
{
"DateTime" : ISODate("2006-07-13T07:42:06.355Z"),
"Value" : "22"
},
{
"DateTime" : ISODate("2006-07-13T07:42:07.355Z"),
"Value" : "22"
},
{
"DateTime" : ISODate("2006-07-13T07:42:08.355Z"),
"Value" : "22"
},
....
따라서 1 개 초 간격에서 날짜 시간을 길게 배열 판독 각 문서. 나는 두 날짜 시간 사이에 조회 할 경우
그래서, 나는
db.getCollection('Timedata').find(
{
'Readings.DateTime':
{ $gt: '2005-07-13 07:42:13.355Z', $lt: '2010-07-13 07:42:13.355Z'}
})
그러나 이것은 항상 반환 ...하여
Robomongo 쿼리 창에 다음과 같은 노력하고 실제로 그들 모두를 반환해야합니다으로
Fetched 0 record(s) in 11ms
.
내 구문이 틀리지 만 여기에있는 것과 같이 잘못된 구문과 중첩 배열에서 datetimes를 검색하는 방법을 찾을 수 없습니다. 누구든지 아이디어가 있습니까?
미리 감사드립니다.
대단히 감사합니다. 완벽하게 작동합니다! 나는이 문법을 공부할 것이고 이것은 어떤 문서에서 내가 생각한 방식과는 완전히 다른 것이다. – peterc
사실, 나는 총을 여기에 뛰어 올렸을 것 같습니다. 위의 내용은 필터의 바깥에있는 판독 값을 포함하여 시간 내에 판독 값이있는 모든 문서를 반환합니다. 첫 번째 및 마지막 문서가 해당 기간 내에 포함 된 판독 값을 갖도록하는 방법이 있기를 바랬습니다. 이것이 "수동으로"할 때 가능할 수 있습니까? – peterc
업데이트 된 답변을보십시오. 필드의 날짜 만 변경하십시오. –