Пн goose: дата сортировки не работает как дата, но текст в моем запросе mongodb - PullRequest
0 голосов
/ 31 января 2020

Моя сортировка по дате не работает как тип даты, но тип текста в моем запросе mongodb.

У меня есть документ "affaire", который выглядит следующим образом:

{
    "_id": {
        "$oid": "5e32b42467e488e064972adf"
    },
    "Adresse": "22 rue des rosiers 75005 PARIS",
    "Date_de_prochaine_echeance": {
        "$date": {
            "$numberLong": "1461715200000"
        }
    },
...
}

mon goose объявление:

{
...
"Date_de_prochaine_echeance": { "type": "Date" },
...
}

Мой запрос выглядит следующим образом

    affaire.find().sort([['Date_de_prochaine_echeance', -1]]).
      select("Adresse ").
      exec(function (err, affaire) { ...});

Моя вставка выглядит следующим образом (я заметил, что не все мои даты вставляются одинаково, я полный позора):

 new affaire({ ...
    "Date_acceptation": req.body.Date_acceptation||new Date(),
"Date_de_prochaine_echeance": new moment(req.body.Date_de_prochaine_echeance||"2099-01-01T00:00:00.000Z").toDate(),
    ...
});

nb: я использовал момент. js lib

Функция сортировки работает не так, как поле даты, но текстовое поле. В некоторых ответах я вижу, что формат даты может быть не очень хорошим. Но я не понимаю, как исправить все мои даты с ISODate («2018-03-16T06: 30: 00Z»).

Дата представляется правильным форматом даты, поскольку интерфейс компаса правильно интерпретирует дату.

Я работаю с mon goose, разве он не должен проверять формат?

1 Ответ

0 голосов
/ 07 февраля 2020

Я понял!

Все было правильно, но ... У меня были некоторые нулевые значения в отсортированных датах.

Это все возможные варианты сортировки по дате, что моя работа или нет ( в зависимости от вашей версии mongodb):

Room.find({}).sort('-date').exec(function(err, docs) { ... });
Room.find({}).sort({date: -1}).exec(function(err, docs) { ... });
Room.find({}).sort({date: 'desc'}).exec(function(err, docs) { ... });
Room.find({}).sort({date: 'descending'}).exec(function(err, docs) { ... });
Room.find({}).sort([['date', -1]]).exec(function(err, docs) { ... });
Room.find({}, null, {sort: '-date'}, function(err, docs) { ... });
Room.find({}, null, {sort: {date: -1}}, function(err, docs) { ... });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...