Làm cách nào để lấy dấu thời gian từ ObjectId trong MongoDB?

Hôm nay trong bài viết này, chúng ta sẽ xem cách GetTimeStamp trong MongoDB bằng ObjectId bằng công cụ Mongoshell hoặc CLI

ObjectId là phần tử 12 byte bao gồm các trường bên dưới,

  • giá trị dấu thời gian,
  • một giá trị ngẫu nhiên
  • bộ đếm gia tăng
Làm cách nào để lấy dấu thời gian từ ObjectId trong MongoDB?

MongoDB sử dụng trường _id làm ObjectId, Id này có một số đặc điểm hành vi và nó được giải thích bên dưới,

Hôm nay bài viết này sẽ xem cách viết Truy vấn MongoDB bằng cách sử dụng ObjectId theo Phạm vi ngày để nhận các bản ghi dựa trên dấu thời gian hoặc phạm vi ngày tháng

Chi tiết về dấu thời gian có thể hữu ích vì nhiều lý do khác, Nó giúp lấy dấu thời gian khi các bản ghi được thêm vào tài liệu MongoDB lần đầu tiên. Cụ thể, khi lược đồ của bạn không chứa thuộc tính dấu thời gian một cách rõ ràng

Hôm nay trong bài viết này, chúng tôi sẽ đề cập đến các khía cạnh dưới đây,

  • Trường MongoDB _id dưới dạng ObjectId
  • Bắt đầu
    • ObjectId ngày lớn hơn truy vấn
    • ObjectId ngày Nhỏ hơn truy vấn
    • ObjectId Ngày lớn hơn và nhỏ hơn truy vấn
  • Truy vấn MongoDB bằng cách sử dụng ngày ObjectId – MongoDB Atlas UI

Xin lưu ý rằng ObjectId là phần tử 12 byte bao gồm giá trị dấu thời gian, giá trị ngẫu nhiên và bộ đếm gia tăng

Trường MongoDB _id dưới dạng ObjectId

MongoDB sử dụng trường _id làm ObjectId Id này có một số đặc điểm hành vi và nó được giải thích bên dưới, Dấu thời gian 4 byte là dấu thời gian UNIX

Nó đại diện cho dấu thời gian tạo của ObjectId khi tài liệu được chèn vào bộ sưu tập Mongo lần đầu tiên, được tính bằng giây kể từ kỷ nguyên Unix. để biết thêm chi tiết, vui lòng truy cập tại đây

Bắt đầu

ObjectId ngày lớn hơn truy vấn

Chỉ huy

{ : { $gt: ObjectId.fromDate( new ISODate("Date here"))}}

 

HOẶC

 { : { $gt: ObjectId.fromDate( new Date("Date here"))}}   

Ví dụ

> db.employee.find({_id: {$gt: ObjectId.fromDate( new Date("2021-01-01") )  } });

{ "_id" : ObjectId("617f1b826cbcd5cf388e44f7"), "Name" : "John", "Ssn" : BinData(6,"AQN8hvdzPErPuPBzVdYmjdUCdQEKWLhy6gifgAykIemBsI06Ps+w9IzaZ7sRO8tyh+EfxODhxpmES4u7g10EnZsvXWeUUASeTYsWVb8GMbxUig=="), "City" : "NY", "Country" : "USA", "States" : "NY", "Zip" : "12345", "order" : [ "name1", "name2" ] }
{ "_id" : ObjectId("61ec0d419e5a92743c245375"), "Name" : "Meery", "Ssn" : BinData(6,"AQN8hvdzPErPuPBzVdYmjdUCdQEKWLhy6gifgAykIemBsI06Ps+w9IzaZ7sRO8tyh+EfxODhxpmES4u7g10EnZsvXWeUUASeTYsWVb8GMbxUig=="), "City" : "NY", "Country" : "USA", "States" : "", "Zip" : "12345-0000" }
{ "_id" : ObjectId("61ec0d5e9e5a92743c245376"), "Name" : "Mohn", "Ssn" : BinData(6,"AQN8hvdzPErPuPBzVdYmjdUCdQEKWLhy6gifgAykIemBsI06Ps+w9IzaZ7sRO8tyh+EfxODhxpmES4u7g10EnZsvXWeUUASeTYsWVb8GMbxUig=="), "City" : "NY", "Country" : "USA", "States" : "", "Zip" : "45678-1234" }
{ "_id" : ObjectId("61ec0d789e5a92743c245377"), "Name" : "alex", "Ssn" : BinData(6,"AQN8hvdzPErPuPBzVdYmjdUCdQEKWLhy6gifgAykIemBsI06Ps+w9IzaZ7sRO8tyh+EfxODhxpmES4u7g10EnZsvXWeUUASeTYsWVb8GMbxUig=="), "City" : "TEST", "Country" : "USA", "States" : "OH" }
{ "_id" : ObjectId("62ac091058c3f35ca07859a9"), "Name" : "sr", "Ssn" : BinData(6,"AQN8hvdzPErPuPBzVdYmjdUCdQEKWLhy6gifgAykIemBsI06Ps+w9IzaZ7sRO8tyh+EfxODhxpmES4u7g10EnZsvXWeUUASeTYsWVb8GMbxUig=="), "City" : "NY", "Country" : "USA", "States" : "NY", "Zip" : "12345", "order" : [ "name1", "name2" ] }

ObjectId ngày Nhỏ hơn truy vấn

Chỉ huy

{ : { $lt: ObjectId.fromDate( new ISODate("Date here"))}}

Ví dụ

> db.employee.find({_id: {$lt: ObjectId.fromDate( new Date("2022-01-01") ) } });

{ "_id" : ObjectId("617f1b826cbcd5cf388e44f7"), "Name" : "John", "Ssn" : BinData(6,"AQN8hvdzPErPuPBzVdYmjdUCdQEKWLhy6gifgAykIemBsI06Ps+w9IzaZ7sRO8tyh+EfxODhxpmES4u7g10EnZsvXWeUUASeTYsWVb8GMbxUig=="), "City" : "NY", "Country" : "USA", "States" : "NY", "Zip" : "12345", "order" : [ "name1", "name2" ] }
Làm cách nào để lấy dấu thời gian từ ObjectId trong MongoDB?

ObjectId Date lớn hơn và nhỏ hơn truy vấn

Chỉ huy

{: {$lt: ObjectId.fromDate( new Date("2022-05-01") ), $gt: ObjectId.fromDate( new Date("2021-01-01") ) } });

Ví dụ

{_id: {$lt: ObjectId.fromDate( new Date("2022-05-01") ), $gt: ObjectId.fromDate( new Date("2021-01-01") ) } });

> db.employee.find({_id: {$lt: ObjectId.fromDate( new Date("2022-05-01") ),  $gt: ObjectId.fromDate( new Date("2021-01-01") )  } });

{ "_id" : ObjectId("617f1b826cbcd5cf388e44f7"), "Name" : "John", "Ssn" : BinData(6,"AQN8hvdzPErPuPBzVdYmjdUCdQEKWLhy6gifgAykIemBsI06Ps+w9IzaZ7sRO8tyh+EfxODhxpmES4u7g10EnZsvXWeUUASeTYsWVb8GMbxUig=="), "City" : "NY", "Country" : "USA", "States" : "NY", "Zip" : "12345", "order" : [ "name1", "name2" ] }
{ "_id" : ObjectId("61ec0d419e5a92743c245375"), "Name" : "Meery", "Ssn" : BinData(6,"AQN8hvdzPErPuPBzVdYmjdUCdQEKWLhy6gifgAykIemBsI06Ps+w9IzaZ7sRO8tyh+EfxODhxpmES4u7g10EnZsvXWeUUASeTYsWVb8GMbxUig=="), "City" : "NY", "Country" : "USA", "States" : "", "Zip" : "12345-0000" }
{ "_id" : ObjectId("61ec0d5e9e5a92743c245376"), "Name" : "Mohn", "Ssn" : BinData(6,"AQN8hvdzPErPuPBzVdYmjdUCdQEKWLhy6gifgAykIemBsI06Ps+w9IzaZ7sRO8tyh+EfxODhxpmES4u7g10EnZsvXWeUUASeTYsWVb8GMbxUig=="), "City" : "NY", "Country" : "USA", "States" : "", "Zip" : "45678-1234" }
{ "_id" : ObjectId("61ec0d789e5a92743c245377"), "Name" : "alex", "Ssn" : BinData(6,"AQN8hvdzPErPuPBzVdYmjdUCdQEKWLhy6gifgAykIemBsI06Ps+w9IzaZ7sRO8tyh+EfxODhxpmES4u7g10EnZsvXWeUUASeTYsWVb8GMbxUig=="), "City" : "TEST", "Country" : "USA", "States" : "OH" }

Truy vấn MongoDB bằng cách sử dụng ngày ObjectId – MongoDB Atlas UI

Nếu bạn đang sử dụng MongoDB Atlas, vui lòng sử dụng lệnh bên dưới để thực hiện truy vấn phạm vi ngày bằng ObjectId

Làm cách nào để lấy dấu thời gian hiện tại trong MongoDB?

Toán tử $currentDate đặt giá trị của một trường thành ngày hiện tại, dưới dạng Ngày hoặc dấu thời gian. Loại mặc định là Ngày. Toán tử $currentDate có dạng. { $currentDate. {

Làm cách nào để sử dụng dấu thời gian trong MongoDB?

Dấu thời gian hoạt động như thế nào trong MongoDB? . Ngày và giờ đã chọn này sẽ được lưu trữ trong bộ sưu tập, cùng với các giá trị dữ liệu khác. when executed, the timestamp method will call the currentDate(), which will pick the current date and time of the system. This picked date and time will be stored in the collection, along with the other data values.

Làm cách nào để lấy ID đối tượng từ MongoDB?

Các phương thức của ObjectId. .
str. Trả về định dạng chuỗi thập lục phân của ObjectId
lấy Dấu thời gian(). Nó trả về phần dấu thời gian của đối tượng dưới dạng Ngày
giá trị của(). Nó trả về định dạng thập lục phân của một String Literal đã cho
toString(). Phương thức này trả về ObjectId ở định dạng Chuỗi trong biểu diễn javascript

ObjectId có bao nhiêu byte?

ObjectId 12 byte bao gồm. Dấu thời gian 4 byte, đại diện cho việc tạo ObjectId, được đo bằng giây kể từ kỷ nguyên Unix. Giá trị ngẫu nhiên 5 byte được tạo một lần cho mỗi quy trình. Giá trị ngẫu nhiên này là duy nhất cho máy và quy trình.