Как получить подмножество встроенных документов в MongoDB?

1

У меня есть документ пользователя, в котором есть массив встроенных журнальных событий событий, из которых есть даты и время, а также другая информация. Есть ли способ получить документ пользователя и ТОЛЬКО подмножество встроенных журнальных событий на основе даты?

  • 0
    Я думаю, что в настоящее время это невозможно. Существует множество дискуссий о виртуальных коллекциях для такого рода вещей, которые все были около 8-12 месяцев назад, но пока еще не реализованы.
  • 0
    Может быть, что-то вроде db.users.find({ 'user.logs' : {created_on: {$gte: start, $lt: end}}) из запроса для диапазона дат (определенного месяца или дня) ?
Теги:
pymongo

1 ответ

0
Лучший ответ

На данный момент это невозможно.

Начиная с 1.5.1, вы можете использовать оператор $slice для выполнения чего-то подобного, но только если ваши объекты журнала уже упорядочены по дате (что теоретически должно быть так, потому что вы обычно ничего не регистрировали в прошлом):

> db.User.findOne({}, {"logs":{$slice: -2}}) // last two
> db.User.findOne({}, {"logs":{$slice: 2}}) // first two

К сожалению, это не позволит вам точно искать в середине подмножества по дате.

  • 0
    Я понял, как много. Я посмотрел на оператор среза, но это не совсем то, что мне нужно. По сути, идея заключается в том, что пользователи могут просматривать их использование за определенные промежутки времени. Спасибо, в любом случае! Кроме того, я отмечаю это как ответ, потому что теперь я знаю, что это все еще невозможно.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню