MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

3 sposoby konwersji ciągu znaków na datę w MongoDB

Jeśli masz kolekcję MongoDB z datami przechowywanymi jako ciągi, możesz je w razie potrzeby przekonwertować na typ Date BSON.

Poniżej znajdują się trzy sposoby konwersji ciągu na datę w MongoDB.

Przykładowe dane

W przykładach w tym artykule wykorzystano następujący dokument w kolekcji o nazwie dogs :

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

Widzimy, że born pole zawiera datę, ale data ta jest przechowywana jako ciąg.

Możemy użyć następujących operatorów potoku agregacji, aby przekonwertować ten ciąg na datę.

$dateFromString Operator

$dateFromString Operator potoku agregacji został zaprojektowany specjalnie do konwersji daty na ciąg.

Wymaga dateString argument, który jest ciągiem, który chcesz przekonwertować na datę.

Oto przykład konwersji ciągu w powyższej kolekcji na datę:

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

Wynik:

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

Widzimy, że data jest teraz opakowana w pomocnik ISODate, co oznacza, że ​​jest to obiekt Date.

$dateFromString operator akceptuje kilka innych argumentów, z których wszystkie są opcjonalne. Zobacz MongoDB $dateFromString aby uzyskać więcej informacji i przykładów.

$toDate Operator

$toDate Operator potoku agregacji konwertuje wartość na datę. Wartość może być dowolnego typu, który można przekonwertować na datę, czyli zasadniczo liczby, łańcuchy i identyfikatory obiektów.

Ten artykuł dotyczy konwertowania ciągów na daty, więc oto przykład użycia $toDate zrobić właśnie to:

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

Wynik:

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

Zobacz Mongo $toDate aby uzyskać więcej informacji i przykładów.

$convert Operator

$convert operator został specjalnie zaprojektowany do konwersji między jednym typem a drugim.

input parametr określa pole, które chcesz przekonwertować, a to parametr określa typ, na który chcesz go przekonwertować.

Przykład:

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

Wynik:

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

Być może zauważyłeś, że $convert operator akceptuje również onError i onNull parametry, które pozwalają nam dostarczyć komunikat do użycia w przypadku błędu lub null wartość. Zapobiega to zatrzymaniu całej operacji agregacji i umożliwia wyświetlanie przyjaznego dla użytkownika komunikatu o błędzie w dokumencie wyjściowym.

Zobacz MongoDB $convert aby uzyskać więcej informacji i przykładów.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Często zadawane pytania dotyczące wywiadu MongoDB

  2. Jak utworzyć obraz Docker Mongo z domyślnymi kolekcjami i danymi?

  3. mongoDB odrębne i gdzie w tym samym zapytaniu?

  4. Wyjątek uwierzytelniający MongoCredential i Uncategorized Mongo Db Exception

  5. Wskazówki dotyczące aktualizacji serwera Percona do MongoDB