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

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

Ако имате колекция MongoDB с дати, съхранени като низове, можете да ги конвертирате в типа Date BSON, ако е необходимо.

По-долу са три начина за преобразуване на низ в дата в MongoDB.

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

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

{ "_id" : 1, "name" : "Fetch", "born" : "2021-01-03T23:30:15.123" }

Можем да видим, че born полето съдържа дата, но тази дата се съхранява като низ.

Можем да използваме следните оператори на тръбопровода за агрегиране, за да преобразуваме този низ в дата.

$dateFromString Оператор

$dateFromString aggregation pipeline operator е проектиран специално за преобразуване на дата в низ.

Изисква dateString аргумент, който е низът, който искате да бъде преобразуван в дата.

Ето пример за преобразуване на низа в горната колекция в дата:

db.dogs.aggregate([ 
  {
    $project: {
        born: {
          $dateFromString: {
              dateString: '$born'
          }
        }
    }
  } 
])

Резултат:

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

Можем да видим, че датата вече е обвита в помощника ISODate, което означава, че е обект Date.

$dateFromString операторът приема шепа други аргументи, всички от които са незадължителни. Вижте MongoDB $dateFromString за повече информация и примери.

$toDate Оператор

$toDate Операторът на конвейера за агрегиране преобразува стойност в дата. Стойността може да бъде от всякакъв тип, който може да се преобразува в дата, която по същество е числа, низове и objectIds.

Тази статия е за преобразуването на низове в дати и затова ето пример за използване на $toDate за да направите точно това:

db.dogs.aggregate([ 
  {
    $project: {
        "born": { 
          $toDate: "$born" 
        }
    }
  } 
])

Резултат:

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

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

$convert Оператор

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

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

Пример:

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

Резултат:

{ "_id" : 1, "result" : ISODate("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. Населяване на мангусти срещу гнездене на обекти

  2. Актуализация за промяна на лиценза на MongoDB SSPL

  3. Внедрете функция за автоматично довършване с помощта на търсене в MongoDB

  4. MongoDB $ конвертиране

  5. Намерете записи на MongoDB, където полето на масива не е празно