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

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

MongoDB có kiểu Date BSON cho phép bạn lưu trữ ngày tháng dưới dạng ngày tháng.

Bạn cũng có thể lưu trữ ngày tháng dưới dạng chuỗi, nếu đó là những gì bạn cần.

Tiến thêm một bước nữa, bạn cũng có thể chuyển đổi Ngày thành chuỗi.

Bài viết này trình bày ba cách để chuyển đổi Ngày thành chuỗi 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 cats :

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

Lưu ý rằng born trường là Ngày. Các ví dụ sau sử dụng các toán tử đường ống tổng hợp khác nhau để chuyển đổi trường này thành một chuỗi.

$dateToString Nhà điều hành

$dateToString nhà điều hành đường ống tổng hợp là nơi rõ ràng nhất để bắt đầu.

Như tên gọi của nó, mục đích duy nhất của nó là chuyển Ngày thành một chuỗi (và trả về kết quả).

Ví dụ:

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

Kết quả:

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

Ở đây, tôi đã cung cấp một chuỗi định dạng để chỉ định định dạng của chuỗi kết quả. Trong trường hợp này, tôi đã sử dụng %Y-%m-%dT%H:%M:%S.%LZ , là định dạng mặc định. Nếu tôi chưa chỉ định một định dạng, thì đây là định dạng mà nó sẽ được sử dụng.

Bạn có thể di chuyển các chỉ định định dạng đó cho phù hợp với chuỗi kết quả của mình.

Ví dụ, chúng tôi có thể làm điều này:

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

Kết quả:

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

Xem MongoDB $dateToString để biết thêm thông tin về nhà điều hành này.

$toString Nhà điều hành

$toString toán tử đường ống tổng hợp tương tự như $dateToString , ngoại trừ việc nó có thể chuyển đổi từ nhiều loại khác nhau - nó không chỉ giới hạn ở việc chuyển đổi từ Ngày.

Nhưng vì mục đích của chúng tôi, chúng tôi đang chuyển đổi từ một Ngày.

Ví dụ:

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

Kết quả:

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

Toán tử này không cung cấp cho chúng tôi tùy chọn chỉ định một định dạng, vì vậy định dạng được trả về nguyên trạng.

Xem MongoDB $toString để 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: "string",
              onError: "An error occurred",
              onNull: "Input was null or empty" 
            }
          }
        }
    }
  ]
)

Kết quả:

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

Lưu ý 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. Mongodb tìm kết quả được tạo theo ngày hôm nay

  2. Xóa một tài liệu con được lồng trong một mảng trong MongoDB

  3. Làm cách nào để sử dụng toán tử 'Không thích' trong MongoDB

  4. Dịch vụ Mongodb, sharding và nhiều cửa sổ

  5. Mongodb tìm bên trong mảng phụ