как загрузить текущую дату в схему мангуста при ее сохранении?

#node.js #mongodb #date #mongoose

#node.js #mongodb #Дата #мангуст

Вопрос:

Я хочу обновить текущую дату в форме гггг-мм-дд, чтобы я мог запросить ее позже, но я не могу вставить дату в требуемом формате.вот что я делал до

 const sampleSchema = new mongoose.Schema({  username:String,  date:{  type:Date  } });  const Sample = new mongoose.model("Sample", sampleSchema);   let currentDate=new Date    const sample = new Sample({  username:req.body.username,  date:currentDate.toISOString().split("T")[0]  });  sample.save()    

Я понимаю это

 {  "_id": {  "$oid": "61b5862c6ff7ff297ae97d0c"  },  "user": "username",  "date": {  "$date": "2021-12-12T00:00:00.000Z"  },  "__v": 0 }  

Мне нужна дата в формате гггг-мм-дд.

Комментарии:

1. это стандартный формат ISO, и mongodb хранит дату только в формате ISO, для вашего настраиваемого формата вы можете изменить тип поля с даты на строку и сохранить нужный формат.

2. как я могу запросить его в пределах двух диапазонов с помощью мангуста?

3. использование $gt $gte операторов , $lte , $lt и.

Ответ №1:

Использовать moment.js чтобы преобразовать дату в формате ISO в обычную дату в формате ГГГГ-ММ-ДД, не пытайтесь хранить свой собственный формат даты в MongoDB, потому что это создает проблемы при запросе данных на основе даты и времени. Поэтому обновите его в ISO, а затем преобразуйте в другой формат на серверной части

Преобразование даты форматирования ISO в ГГГГ ММ ДД

 date = new Date('2013-08-03T02:00:00Z');  date = moment(date).format('YYYY MM DD'); //result 2013 08 03  

Преобразование формата ГГГГ ММ ДД в формат IOS

 date = new Date('2013-08-03'); date = moment(date).format();  

Еще одна вещь, которую пользователи могут сделать, — это хранить данные в виде строки и использовать операторы $gt, $gte, $lte и $lt для запросов