Mongodb найти между датами (месяц, год)

У меня есть коллекция с двумя полями, как показано ниже:

{ year: 2017, month: 04 }

Как я могу выбрать документы в период с 2017/07 по 2018/04?

Использование JavaScript и MongoDB
Использование JavaScript и MongoDB
Сегодня я собираюсь вкратце рассказать о прототипах в JavaScript, а также представить и объяснить вам работу с базой данных MongoDB.
1
0
615
2

Ответы 2

Во-первых, вы должны убедиться, что ваш db имеет формат дата сохранения в ISO (формат, который поддерживает mongo)

Вы можете использовать следующую команду для поиска документов: -

model.find({
  date:{
   $gte:ISODate("2017-04-29T00:00:00.000Z"),
   $lte:ISODate("2017-07-29T00:00:00.000Z"),
  }
})

Where model is the name of the collection and date is a attribute of document holding dates in ISO format.

Решено с помощью:

db.collection.aggregate(

    // Pipeline
    [
        // Stage 1
        {
            $addFields: {
                "date": {
                   "$dateFromParts": {
                   "year": "$year",
                   "month": {"$toInt": "$month"}
                 }
                }
            }
        },

        // Stage 2
        {
            $match: {
             "date": {
                 "$gte": ISODate("2017-07-01T00:00:00.000Z"),
                 "$lte": ISODate("2018-04-30T00:00:00.000Z")
               }
            }
        },

    ]
);

выше ответ отличается от этого?

Ashh 01.08.2018 10:57

Другие вопросы по теме