MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

3 cách chuyển đổi chuỗi thành ngày trong MongoDB

Nếu bạn có bộ sưu tập MongoDB với ngày được lưu trữ dưới dạng chuỗi, bạn có thể chuyển đổi chúng thành loại Date BSON nếu cần.

Dưới đây là ba cách để chuyển đổi một chuỗi thành Ngày trong MongoDB.

Dữ liệu mẫu

Các ví dụ trong bài viết này sử dụng tài liệu sau trong bộ sưu tập có tên dogs :

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

Chúng ta có thể thấy rằng born trường chứa ngày tháng, nhưng ngày tháng đó được lưu trữ dưới dạng chuỗi.

Chúng tôi có thể sử dụng các toán tử đường ống tổng hợp sau đây để chuyển đổi chuỗi đó thành ngày.

$dateFromString Nhà điều hành

$dateFromString toán tử đường ống tổng hợp được thiết kế đặc biệt để chuyển đổi một ngày thành một chuỗi.

Nó yêu cầu một dateString đối số, là chuỗi mà bạn muốn chuyển đổi thành ngày tháng.

Dưới đây là một ví dụ về chuyển đổi chuỗi trong bộ sưu tập ở trên thành một ngày:

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

Kết quả:

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

Chúng ta có thể thấy rằng ngày hiện được bao bọc trong trình trợ giúp ISODate, có nghĩa là nó là một đối tượng Ngày.

$dateFromString toán tử chấp nhận một số ít các đối số khác, tất cả đều là tùy chọn. Xem MongoDB $dateFromString để biết thêm thông tin và ví dụ.

$toDate Nhà điều hành

$toDate nhà điều hành đường ống tổng hợp chuyển đổi một giá trị thành một ngày. Giá trị có thể là bất kỳ kiểu nào có thể được chuyển đổi thành ngày, về cơ bản là số, chuỗi và id đối tượng.

Bài viết này nói về việc chuyển đổi chuỗi thành ngày tháng và đây là một ví dụ về cách sử dụng $toDate để làm điều đó:

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

Kết quả:

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

Xem Mongo $toDate để biết thêm thông tin và ví dụ.

$convert Nhà điều hành

$convert toán tử được thiết kế đặc biệt để chuyển đổi giữa loại này sang loại khác.

input tham số chỉ định trường bạn muốn chuyển đổi và to tham số chỉ định loại bạn muốn chuyển đổi nó thành.

Ví dụ:

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

Kết quả:

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

Bạn có thể nhận thấy rằng $convert toán tử cũng chấp nhận onErroronNull tham số, cho phép chúng tôi cung cấp thông báo để sử dụng trong trường hợp có lỗi hoặc null giá trị. Điều này ngăn toàn bộ hoạt động tổng hợp tạm dừng và nó cho phép thông báo lỗi thân thiện với người dùng trong tài liệu đầu ra.

Xem MongoDB $convert để biết thêm thông tin và ví dụ.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Bản cập nhật Mongodb được lồng sâu vào tài liệu con

  2. Làm thế nào để sử dụng MongoDB với các hứa hẹn trong Node.js?

  3. Cách thiết kế môi trường cơ sở dữ liệu nguồn mở khả dụng cao

  4. Cách sử dụng $ regex trong truy vấn tổng hợp mongodb trong $ match

  5. Mongoose Mongodb truy vấn một mảng đối tượng