Я очень новичок в 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"
},
....
Таким образом, каждый документ представляет собой массив Readings, который содержит DateTimes с интервалом в 1 секунду.
Итак, если я хочу выполнить запрос между двумя датами, я пытаюсь сделать следующее в окне запроса Robomongo...
db.getCollection('Timedata').find(
{
'Readings.DateTime':
{ $gt: '2005-07-13 07:42:13.355Z', $lt: '2010-07-13 07:42:13.355Z'}
})
Однако это всегда возвращает Fetched 0 record(s) in 11ms
, где на самом деле должно возвращаться все.
Мой синтаксис должен быть неправильным, но я просто не могу найти, что с ним не так и как искать дату и время во вложенном массиве, как здесь. У кого-нибудь есть идеи?
Заранее спасибо!