2016-06-19 3 views
0

Предположим, у меня есть 10 000 документов из разных дат, возвращающихся на 100 лет.Mongo query find array of годы

Я хочу найти различные годы, чтобы упростить навигацию. Я хочу опустить любые годы, у которых нет документов.

Пример:

  • 2016: есть документы, включает в себя
  • 2015: нет дока, не исключает
  • 2014: есть документы, включает в себя
  • 2013: есть документы, включает в себя
  • 2012: нет документов, исключая

и т.д.

Каков наиболее эффективный способ запроса коллекции документов в монго и найти множество лет?

Спасибо

ответ

0

Для этого можно использовать оператор $year в агрегате $group.

Если предположить, что документы в test коллекции с полем даты названы date:

db.test.aggregate([{$group: {_id: {$year: '$date'}}}]) 
0

Вы в основном описывая $addToSet функциональные возможности, которые вы можете прочитать about in the docs.