Mongodb $ ne запрос даты не работает должным образом - PullRequest
0 голосов
/ 05 июля 2018

У меня есть коллекция с данными ниже. Пока я использую db.collection.find({endDate: {$ne: new Date()}}), он также показывает результат текущей даты, который "05 ИЮЛЯ 2018" .

{ 
    "_id" : "GMDJcQMfs8j8EP9EE", 
    "endDate" : ISODate("2018-07-05T14:59:08.794+0000")
}
{ 
    "_id" : "GMDJcQMfs12233", 
    "endDate" : ISODate("2020-02-21T00:00:00.000+0000")
}
{ 
    "_id" : "GMDJerrr8j8EP9EE", 
    "endDate" : ISODate("2020-02-21T00:00:00.000+0000")
}
{ 
    "_id" : "rrrJcQMfs8j8EP9EE", 
    "endDate" : ISODate("2020-02-21T00:00:00.000+0000")
}

Пожалуйста, смотрите изображение

1 Ответ

0 голосов
/ 05 июля 2018

Вы можете сделать это, преобразовав дату в строку, добавив текущую дату в том же формате, скомпоновать оба и отфильтровать идентичные результаты:

db.test1.aggregate(
    [
        {
            $project: {
                endDate:1,
                endDateFormatted:{$dateToString: {date:"$endDate",format:"%Y-%m-%d"}},
                current:{$dateToString: {date:new Date(),format:"%Y-%m-%d"}}
            }
        },
        {
            $project: {  ab: {$cmp: ['$endDateFormatted','$current']},endDate:1}
        },
        {
            $match: {ab:{$ne:0}}
        },
        {
        $project: {
           endDate:1
        }
    },
    ]
);

Выход:

{ 
    "_id" : "GMDJcQMfs12233", 
    "endDate" : ISODate("2020-02-21T01:00:00.000+0100")
}
{ 
    "_id" : "GMDJerrr8j8EP9EE", 
    "endDate" : ISODate("2020-02-21T01:00:00.000+0100")
}
{ 
    "_id" : "rrrJcQMfs8j8EP9EE", 
    "endDate" : ISODate("2020-02-21T01:00:00.000+0100")
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...