MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

3 начина за преобразуване на дата в низ в MongoDB

MongoDB има тип BSON за дата, който ви позволява да съхранявате дати като дати.

Можете също да съхранявате дати като низове, ако това е, от което се нуждаете.

Като направите още една стъпка напред, можете също да преобразувате дата в низ.

Тази статия представя три начина за преобразуване на дата в низ в MongoDB.

Примерни данни

Примерите в тази статия използват следния документ в колекция, наречена cats :

{
	"_id" : 1,
	"name" : "Scratch",
	"born" : ISODate("2021-01-03T23:30:15.123Z")
}

Забележете, че born полето е Дата. Следващите примери използват различни оператори на конвейер за агрегиране, за да преобразуват това поле в низ.

$dateToString Оператор

$dateToString операторът на тръбопровода за агрегация е най-очевидното място за начало.

Както подсказва името му, единствената му цел е да преобразува дата в низ (и да върне резултата).

Пример:

db.cats.aggregate(
   [
     {
       $project: {
         _id: 0,
          dateString: { $dateToString: { format: "%Y-%m-%dT%H:%M:%S.%LZ", date: "$born" } }
       }
     }
   ]
)

Резултат:

{ "dateString" : "2021-01-03T23:30:15.123Z" }

Тук предоставих форматен низ, за ​​да посочите формата на резултантния низ. В този случай използвах %Y-%m-%dT%H:%M:%S.%LZ , който е форматът по подразбиране. Ако не бях посочил формат, това е форматът, който щеше да използва.

Можете да преместите тези спецификатори на формат, за да отговарят на получения низ.

Например, можем да направим това:

db.cats.aggregate(
   [
     {
       $project: {
         _id: 0,
          dateString: { $dateToString: { format: "%d/%m/%Y", date: "$born" } }
       }
     }
   ]
)

Резултат:

{ "dateString" : "03/01/2021" }

Вижте MongoDB $dateToString за повече информация относно този оператор.

$toString Оператор

$toString Операторът на конвейера за агрегиране е подобен на $dateToString , с изключение на това, че може да конвертира от различни типове – не се ограничава само до конвертиране от дата.

Но за нашите цели ние преобразуваме от дата.

Пример:

db.cats.aggregate(
   [
     {
       $project: {
         _id: 0,
          dateString: { $toString: "$born" }
       }
     }
   ]
)

Резултат:

{ "dateString" : "2021-01-03T23:30:15.123Z" }

Този оператор не ни дава възможност да посочим формат, така че форматът се връща такъв, какъвто е.

Вижте MongoDB $toString за повече информация и примери.

$convert Оператор

$convert операторът е специално проектиран за преобразуване между един тип в друг.

input параметърът определя полето, което искате да конвертирате, и to параметърът определя типа, към който искате да го преобразувате.

Пример:

db.cats.aggregate(
  [
    {
      $project:
        { 
          result: 
          {
            $convert: { 
              input: "$born", 
              to: "string",
              onError: "An error occurred",
              onNull: "Input was null or empty" 
            }
          }
        }
    }
  ]
)

Резултат:

{ "_id" : 1, "result" : "2021-01-03T23:30:15.123Z" }

Забележете, че $convert операторът също така приема onError и onNull параметри, което ни позволява да предоставим съобщение, което да използваме в случай на грешка или null стойност. Това предотвратява спирането на цялата операция на агрегиране и позволява лесно за потребителя съобщение за грешка в изходния документ.

Вижте MongoDB $convert за повече информация и примери.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Актуализация за промяна на лиценза на MongoDB SSPL

  2. Преглед на MongoDB и балансиране на натоварването

  3. Метеор и DBRefs

  4. Опции за пълно текстово търсене за настройка на MongoDB

  5. MongoDB агрегации, използващи Java