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

Phương thức MongoDB Date ()

Trong MongoDB, Date() phương thức trả về ngày tháng dưới dạng một chuỗi hoặc dưới dạng đối tượng Ngày tháng.

  • Khi bạn gọi nó là Date() , nó trả về ngày hiện tại dưới dạng một chuỗi trong mongo vỏ.
  • Khi bạn gọi nó là new Date() , nó trả về ngày hiện tại dưới dạng đối tượng Date.

Bạn cũng có thể cung cấp một ngày cụ thể làm đối số cho new Date() , để nó sử dụng ngày đó.

Ví dụ - Date()

Dưới đây là ví dụ về việc chèn tài liệu vào bộ sưu tập và sử dụng Date() làm giá trị cho một trong các trường:

db.dogs.insert(
  { 
    "_id" : 1,
    "name" : "Fetch", 
    "lastModified" : Date()
  }
)

Sau khi chạy mã đó, chúng ta có thể xem tài liệu kết quả:

db.dogs.find().pretty()

Kết quả:

{
	"_id" : 1,
	"name" : "Fetch",
	"lastModified" : "Wed Jan 27 2021 10:15:53 GMT+1000 (AEST)"
}

Chúng ta có thể thấy rằng lastModified trường ngày sử dụng chuỗi ngày làm giá trị của nó.

Ví dụ - new Date()

Như đã đề cập, nếu bạn muốn trả về một đối tượng ngày thay vì một chuỗi ngày, hãy sử dụng new Date() .

Ví dụ:

db.dogs.insert(
  { 
    "_id" : 2,
    "name" : "Wag", 
    "lastModified" : new Date()
  }
)

Chỉ cần viết trước Date() với new dẫn đến một đối tượng Ngày thay vì một chuỗi ngày.

Bây giờ chúng ta hãy kiểm tra lại bộ sưu tập tài liệu:

db.dogs.find().pretty()

Kết quả:

{
	"_id" : 1,
	"name" : "Fetch",
	"lastModified" : "Wed Jan 27 2021 10:15:53 GMT+1000 (AEST)"
}
{
	"_id" : 2,
	"name" : "Wag",
	"lastModified" : ISODate("2021-01-27T00:19:08.862Z")
}

Chúng ta có thể thấy rằng ngày trong tài liệu thứ hai đã được bao bọc bằng ISODate() người giúp đỡ. ISODate tính theo giờ UTC.

Cung cấp một ngày cụ thể

Bạn có thể cung cấp ngày tháng của riêng mình khi gọi Date() phương pháp.

Để thực hiện việc này, hãy chuyển một chuỗi ngày ISO-8601 với một năm trong phạm vi bao gồm 0 thông qua 9999 sang new Date() hàm tạo hoặc ISODate() hàm số.

Đây là một ví dụ.

db.dogs.update(
  { "_id" : 1 },
  { $set : { "born" : new Date( "2020-10-07" ) } }
)

Bây giờ chúng ta hãy kiểm tra tài liệu:

db.dogs.find( { "_id": 1 } ).pretty()

Kết quả:

{
	"_id" : 1,
	"name" : "Fetch",
	"lastModified" : "Wed Jan 27 2021 10:15:53 GMT+1000 (AEST)",
	"born" : ISODate("2020-10-07T00:00:00Z")
}

Chúng ta có thể thấy rằng trường sinh đã được thêm vào và nó đã được đặt thành ngày được cung cấp.

Bạn có thể cung cấp ngày ở các định dạng sau.

Định dạng Mô tả
YYYY-mm-dd Trả về ISODate với ngày được chỉ định.
YYYY-mm-ddTHH:MM:ss Chỉ định ngày giờ trong múi giờ địa phương của khách hàng và trả về ISODate với ngày giờ được chỉ định theo UTC.
YYYY-mm-ddTHH:MM:ssZ Chỉ định ngày giờ trong UTC và trả về ISODate với ngày giờ được chỉ định theo UTC.
Số nguyên Bạn cũng có thể cung cấp một số nguyên làm giá trị. Khi bạn thực hiện việc này, nó chỉ định ngày giờ là mili giây kể từ kỷ nguyên Unix (ngày 1 tháng 1 năm 1970) và trả về kết quả ISODate ví dụ.

Kỷ nguyên Unix

Dưới đây là một ví dụ về việc chỉ định một số nguyên làm đối số cho new Date() .

Thao tác này chỉ định ngày giờ là mili giây kể từ kỷ nguyên Unix (ngày 1 tháng 1 năm 1970) và trả về kết quả ISODate ví dụ.

db.dogs.update(
  { "_id" : 2 },
  { $set : { "born" : new Date( 1601207768012 ) } }
)

Bây giờ chúng ta hãy kiểm tra tài liệu:

db.dogs.find( { "_id": 2 } ).pretty()

Kết quả:

{
	"_id" : 2,
	"name" : "Wag",
	"lastModified" : ISODate("2021-01-27T00:19:08.862Z"),
	"born" : ISODate("2020-09-27T11:56:08.012Z")
}


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Làm cách nào để lấy lại tài liệu đã cập nhật từ phương thức findOneAndUpdate?

  2. Sử dụng JSON với MongoDB?

  3. Truy vấn MongoDB trên các trường được điền

  4. MongoDB $ hàng tuầnUpdate # 66 (ngày 22 tháng 4 năm 2022):Hackathons, mongosh và Github

  5. Làm thế nào để sử dụng dữ liệu được kết xuất bởi mongodump?