Имеется у меня в mongodb коллекция с документами такого вида:
{ u'room_name': u'My first channel', u'users': [ ], u'_id': ObjectId('53badcb68d9c3013c1594199'), u'messages': [ { u'content': u'q joined', u'public_login': u'q', u'datetime': 1404758871, u'avatar': u'/static/img/user_dump.jpg', u'attach_list': [ ] }, { u'content': u'q joined', u'public_login': u'q', u'datetime': 1404758874, u'avatar': u'/static/img/user_dump.jpg', u'attach_list': [ ] }, { u'content': u'q joined', u'public_login': u'q', u'datetime': 1404758877, u'avatar': u'/static/img/user_dump.jpg', u'attach_list': [ ] }, { u'content': u'q joined', u'public_login': u'q', u'datetime': 1404758886, u'avatar': u'/static/img/user_dump.jpg', u'attach_list': [ ] }, { u'content': u'q joined', u'public_login': u'q', u'datetime': 1404758886, u'avatar': u'/static/img/user_dump.jpg', u'attach_list': [ ] } ] }
нужно выбрать сообщения из комнаты с именем ‘My first channel’, datetime которых больше 1404758874
сейчас дошел до варианта запроса
db.channels.find({'room_name': 'My first channel', 'messages.datetime': {'$gt': 1404758874} }, {'messages': 1, '_id': 0})
но, как я понимаю, эта штука выбирает все сообщения, если в комнате My first channel есть сообщения с datetime больше 1404758874. Подскажите, пожалуйста, как составить нужный мне запрос.