Уведомления

Группа в Telegram: @pythonsu

#1 Июль 8, 2014 01:13:37

guvatu
Зарегистрирован: 2014-07-08
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Выбрать сообщения из чата с заданным именем

Всем доброго времени суток и я сразу прошу прощения за такой длинный листинг, но иначе боюсь что-то упустить.
Имеется у меня в 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. Подскажите, пожалуйста, как составить нужный мне запрос.

Отредактировано guvatu (Июль 8, 2014 01:34:06)

Офлайн

#2 Июль 8, 2014 01:39:21

terabayt
От: Киев
Зарегистрирован: 2011-11-26
Сообщения: 1099
Репутация: +  103  -
Профиль   Отправить e-mail  

Выбрать сообщения из чата с заданным именем

используй filter



————————————————
-*- Simple is better than complex -*-

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version