Làm cách nào để đọc ngày từ MongoDB trong Java?

Ở trên sẽ tạo bộ sưu tập (hoặc bảng) (nếu bộ sưu tập đã tồn tại, nó sẽ chèn tài liệu vào đó)

1. 2) Chèn ngày vào MongoDB bằng cách sử dụng ISODate()

db. Nhân viên. chèn ({_id. 2, FirstName. "sam", ngày_tham gia. ISODate()})



1. 3) Chèn custom/userDefined date trong MongoDB bằng cách sử dụng new Date()

db. Nhân viên. chèn ({_id. 3, FirstName. "neh", ngày_tham gia. new Date("2017-03-24T17. 00. 00. 832Z")})


1. 4) Chèn custom/userDefined date trong MongoDB bằng cách sử dụng ISODate()

db. Nhân viên. chèn ({_id. 4, FirstName. "amy", ngày_tham gia. ISODate("2017-03-23T18. 00. 00. 832Z")})



2) Bây giờ, hãy truy vấn bộ sưu tập trong MongoDB



Truy vấn tất cả tài liệu của bộ sưu tập bằng phương thức find()>

db. Nhân viên. tìm thấy()

Đầu ra >

{ "_Tôi". 1, "Tên". "ank", "ngày_tham gia". ISODate("2017-04-02T17. 11. 01. 360Z") }

{ "_Tôi". 2, "Tên". "sam", "ngày_tham_gia". ISODate("2017-04-02T17. 11. 01. 367Z") }

{ "_Tôi". 3, "Tên". "neh", "ngày_tham gia". ISODate("2017-03-24T17. 00. 00. 832Z") }

{ "_Tôi". 4, "Tên". "amy", "ngày_tham gia". ISODate("2017-03-23T18. 00. 00. 832Z") }


3) Tìm nhân viên có ngày gia nhập bằng nhau . 11. 01. 360Z" trong MongoDB



3. 1) sử dụng new Date()

db. Nhân viên. tìm ( { ngày_tham gia . mới Ngày("2017-04-02T17. 11. 01. 360Z") } )

Đầu ra>

{ "_Tôi". 1, "Tên". "ank", "ngày_tham gia". ISODate("2017-04-02T17. 11. 01. 360Z") }



HOẶC LÀ

3. 2) sử dụng ISODate()

db. Nhân viên. tìm ( { ngày_tham gia . mới ISONgày(" . 11. 01. 360Z") } )

Đầu ra>

{ "_Tôi". 1, "Tên". "ank", "ngày_tham gia". ISODate("2017-04-02T17. 11. 01. 360Z") }



4) Tìm nhân viên có ngày gia nhập lớn hơn "2017-03-25T17:00:00.832Z" in MongoDB

db. Nhân viên. tìm ( { ngày_tham gia . {$gt. mới Ngày("2017-03-25T17. 00. 00. 832Z") } } )

Đầu ra>

{ "_Tôi". 1, "Tên". "ank", "ngày_tham gia". ISODate("2017-04-02T17. 11. 01. 360Z") }

{ "_Tôi". 2, "Tên". "sam", "ngày_tham_gia". ISODate("2017-04-02T17. 11. 01. 367Z") }



5) Tóm tắt -

Vì vậy, trong hướng dẫn MongoDB này, chúng ta đã học cách Làm việc với NGÀY trong mongoDB - Chèn ngày (hiện tại và tùy chỉnh) và truy vấn nó

Dữ liệu ngày và giờ thường được quản lý bởi các hệ thống cơ sở dữ liệu và cực kỳ quan trọng, nhưng thường có thể khó xử lý chính xác hơn so với ban đầu. Cơ sở dữ liệu phải có khả năng lưu trữ dữ liệu ngày và giờ ở định dạng rõ ràng, rõ ràng, chuyển đổi dữ liệu đó thành định dạng thân thiện với người dùng để tương tác với ứng dụng khách và thực hiện các hoạt động dựa trên thời gian có tính đến sự phức tạp như múi giờ khác nhau và thay đổi về thời gian tiết kiệm ánh sáng ban ngày

Trong hướng dẫn này, chúng ta sẽ thảo luận về một số công cụ mà MongoDB cung cấp để hoạt động hiệu quả với dữ liệu ngày và giờ. Chúng ta sẽ khám phá các loại dữ liệu có liên quan, xem xét các toán tử và phương pháp, đồng thời tìm hiểu cách sử dụng tốt nhất các công cụ này để giữ cho dữ liệu ngày và giờ của bạn ở trạng thái tốt

LIÊN QUAN ĐẾN PRISMA. IO

Nếu bạn đang sử dụng MongoDB với Prisma, bạn có thể sử dụng trình kết nối MongoDB để kết nối và quản lý cơ sở dữ liệu của mình. Loại

use temp_db

db.dates.insertMany([

{

name: "Created with `Date()`",

date: Date(),

},

{

name: "Created with `new Date()`",

date: new Date(),

},

{

name: "Created with `ISODate()`",

date: ISODate(),

},

])

7 của Prisma thành loại

use temp_db

db.dates.insertMany([

{

name: "Created with `Date()`",

date: Date(),

},

{

name: "Created with `new Date()`",

date: new Date(),

},

{

name: "Created with `ISODate()`",

date: ISODate(),

},

])

8 của MongoDB

Prisma là bộ công cụ cơ sở dữ liệu mã nguồn mở dành cho Typescript và Node. js nhằm mục đích giúp các nhà phát triển ứng dụng làm việc hiệu quả và tự tin hơn khi làm việc với cơ sở dữ liệu

Các loại MongoDB use temp_db db.dates.insertMany([ { name: "Created with `Date()`", date: Date(), }, { name: "Created with `new Date()`", date: new Date(), }, { name: "Created with `ISODate()`", date: ISODate(), },])8 và { "acknowledged" : true, "insertedIds" : [ ObjectId("62726af5a3dc7398b97e6e93"), ObjectId("62726af5a3dc7398b97e6e94"), ObjectId("62726af5a3dc7398b97e6e95") ]}0

Có thể lưu trữ các giá trị ngày và giờ dưới dạng một đơn vị kết hợp

Ở đây, cột bên trái biểu thị tên BSON (JSON nhị phân) cho loại dữ liệu và cột thứ hai biểu thị số ID được liên kết với loại đó. Cột "Bí danh" cuối cùng đại diện cho chuỗi mà MongoDB sử dụng để đại diện cho loại

Type | Number | Alias |

------------------ | ------ | ------------ |

Date | 9 | "date" |

Loại Ngày BSON là một số nguyên 64-bit đã ký biểu thị số mili giây kể từ kỷ nguyên Unix (ngày 1 tháng 1 năm 1970). Số dương biểu thị thời gian đã trôi qua kể từ kỷ nguyên trong khi số âm biểu thị thời gian di chuyển ngược từ kỷ nguyên

Lưu trữ dữ liệu ngày và giờ dưới dạng một số nguyên lớn có lợi vì nó

  • cho phép MongoDB lưu trữ ngày tháng với độ chính xác đến mili giây
  • cung cấp sự linh hoạt trong cách hiển thị ngày và giờ

Vì loại ngày không lưu trữ thông tin bổ sung như múi giờ, ngữ cảnh đó phải được lưu trữ riêng nếu có liên quan. MongoDB sẽ lưu trữ thông tin ngày và giờ bằng UTC trong nội bộ, nhưng có thể dễ dàng chuyển đổi sang các múi giờ khác tại thời điểm truy xuất khi cần

MongoDB cũng cung cấp một cái được sử dụng chủ yếu trong nội bộ

Type | Number | Alias |

------------------ | ------ | ------------ |

Timestamp | 17 | "timestamp" |

Bởi vì điều này chủ yếu được triển khai để giúp điều phối các quy trình nội bộ như sao chép và phân đoạn, có lẽ bạn không nên sử dụng điều này trong logic của ứng dụng của riêng mình. Loại ngày thường có thể đáp ứng mọi yêu cầu về thời gian mà bạn có thể có

LIÊN QUAN ĐẾN PRISMA. IO

Khi quản lý cơ sở dữ liệu MongoDB bằng Prisma, loại MongoDB

use temp_db

db.dates.insertMany([

{

name: "Created with `Date()`",

date: Date(),

},

{

name: "Created with `new Date()`",

date: new Date(),

},

{

name: "Created with `ISODate()`",

date: ISODate(),

},

])

8 thành loại

use temp_db

db.dates.insertMany([

{

name: "Created with `Date()`",

date: Date(),

},

{

name: "Created with `new Date()`",

date: new Date(),

},

{

name: "Created with `ISODate()`",

date: ISODate(),

},

])

7 trong Prisma

Prisma là bộ công cụ cơ sở dữ liệu mã nguồn mở dành cho Typescript và Node. js nhằm mục đích giúp các nhà phát triển ứng dụng làm việc hiệu quả và tự tin hơn khi làm việc với cơ sở dữ liệu

Cách tạo ngày mới

Bạn có thể tạo một đối tượng

use temp_db

db.dates.insertMany([

{

name: "Created with `Date()`",

date: Date(),

},

{

name: "Created with `new Date()`",

date: new Date(),

},

{

name: "Created with `ISODate()`",

date: ISODate(),

},

])

8 mới theo hai cách khác nhau

  • {

    "acknowledged" : true,

    "insertedIds" : [

    ObjectId("62726af5a3dc7398b97e6e93"),

    ObjectId("62726af5a3dc7398b97e6e94"),

    ObjectId("62726af5a3dc7398b97e6e95")

    ]

    }

    6. Trả về ngày và giờ dưới dạng đối tượng

    use temp_db

    db.dates.insertMany([

    {

    name: "Created with `Date()`",

    date: Date(),

    },

    {

    name: "Created with `new Date()`",

    date: new Date(),

    },

    {

    name: "Created with `ISODate()`",

    date: ISODate(),

    },

    ])

    8
  • {

    "acknowledged" : true,

    "insertedIds" : [

    ObjectId("62726af5a3dc7398b97e6e93"),

    ObjectId("62726af5a3dc7398b97e6e94"),

    ObjectId("62726af5a3dc7398b97e6e95")

    ]

    }

    8. Trả về ngày và giờ dưới dạng đối tượng

    use temp_db

    db.dates.insertMany([

    {

    name: "Created with `Date()`",

    date: Date(),

    },

    {

    name: "Created with `new Date()`",

    date: new Date(),

    },

    {

    name: "Created with `ISODate()`",

    date: ISODate(),

    },

    ])

    8

Cả hai phương thức

{

"acknowledged" : true,

"insertedIds" : [

ObjectId("62726af5a3dc7398b97e6e93"),

ObjectId("62726af5a3dc7398b97e6e94"),

ObjectId("62726af5a3dc7398b97e6e95")

]

}

6 và

{

"acknowledged" : true,

"insertedIds" : [

ObjectId("62726af5a3dc7398b97e6e93"),

ObjectId("62726af5a3dc7398b97e6e94"),

ObjectId("62726af5a3dc7398b97e6e95")

]

}

8 đều tạo ra một đối tượng

use temp_db

db.dates.insertMany([

{

name: "Created with `Date()`",

date: Date(),

},

{

name: "Created with `new Date()`",

date: new Date(),

},

{

name: "Created with `ISODate()`",

date: ISODate(),

},

])

8 được bao bọc trong một hàm trợ giúp

{

"acknowledged" : true,

"insertedIds" : [

ObjectId("62726af5a3dc7398b97e6e93"),

ObjectId("62726af5a3dc7398b97e6e94"),

ObjectId("62726af5a3dc7398b97e6e95")

]

}

8

Ngoài ra, gọi hàm

db.dates.insertMany([

{

name: "Future date",

date: ISODate("2040-10-28T23:58:18Z"),

},

{

name: "Past date",

date: new Date("1852-01-15T11:25"),

},

])

4 mà không có hàm tạo

db.dates.insertMany([

{

name: "Future date",

date: ISODate("2040-10-28T23:58:18Z"),

},

{

name: "Past date",

date: new Date("1852-01-15T11:25"),

},

])

5 sẽ trả về ngày và giờ dưới dạng chuỗi thay vì đối tượng

use temp_db

db.dates.insertMany([

{

name: "Created with `Date()`",

date: Date(),

},

{

name: "Created with `new Date()`",

date: new Date(),

},

{

name: "Created with `ISODate()`",

date: ISODate(),

},

])

8

  • db.dates.insertMany([

    {

    name: "Future date",

    date: ISODate("2040-10-28T23:58:18Z"),

    },

    {

    name: "Past date",

    date: new Date("1852-01-15T11:25"),

    },

    ])

    4. Trả về ngày và giờ dưới dạng chuỗi

Điều quan trọng cần lưu ý là sự khác biệt giữa hai loại này vì nó ảnh hưởng đến những hoạt động nào có sẵn, cách thông tin được lưu trữ và mức độ linh hoạt mà nó sẽ mang lại cho bạn. Nói chung, cách tốt nhất là lưu trữ thông tin ngày tháng bằng cách sử dụng loại

use temp_db

db.dates.insertMany([

{

name: "Created with `Date()`",

date: Date(),

},

{

name: "Created with `new Date()`",

date: new Date(),

},

{

name: "Created with `ISODate()`",

date: ISODate(),

},

])

8 và sau đó định dạng nó để xuất ra khi cần

Chúng ta hãy xem cách nó hoạt động trong phiên shell MongoDB

Đầu tiên, chúng ta có thể chuyển sang một cơ sở dữ liệu tạm thời mới và tạo ba tài liệu mà mỗi tài liệu có một trường

use temp_db

db.dates.insertMany([

{

name: "Created with `Date()`",

date: Date(),

},

{

name: "Created with `new Date()`",

date: new Date(),

},

{

name: "Created with `ISODate()`",

date: ISODate(),

},

])

7. Chúng tôi sử dụng một phương pháp khác để điền vào trường

use temp_db

db.dates.insertMany([

{

name: "Created with `Date()`",

date: Date(),

},

{

name: "Created with `new Date()`",

date: new Date(),

},

{

name: "Created with `ISODate()`",

date: ISODate(),

},

])

7 cho từng đối tượng

use temp_db

db.dates.insertMany([

{

name: "Created with `Date()`",

date: Date(),

},

{

name: "Created with `new Date()`",

date: new Date(),

},

{

name: "Created with `ISODate()`",

date: ISODate(),

},

])

{

"acknowledged" : true,

"insertedIds" : [

ObjectId("62726af5a3dc7398b97e6e93"),

ObjectId("62726af5a3dc7398b97e6e94"),

ObjectId("62726af5a3dc7398b97e6e95")

]

}

Theo mặc định, mỗi cơ chế này sẽ lưu trữ ngày giờ hiện tại. Bạn có thể lưu trữ ngày và giờ khác bằng cách thêm chuỗi ngày được định dạng ISO 8601 làm đối số

db.dates.insertMany([

{

name: "Future date",

date: ISODate("2040-10-28T23:58:18Z"),

},

{

name: "Past date",

date: new Date("1852-01-15T11:25"),

},

])

Những thứ này sẽ tạo ra một đối tượng

use temp_db

db.dates.insertMany([

{

name: "Created with `Date()`",

date: Date(),

},

{

name: "Created with `new Date()`",

date: new Date(),

},

{

name: "Created with `ISODate()`",

date: ISODate(),

},

])

8 vào ngày giờ thích hợp

Một điều cần lưu ý là việc bao gồm phần đuôi

db.dates.find().pretty()

2 trong tài liệu mới đầu tiên ở trên. Điều này cho biết rằng ngày và giờ đang được cung cấp dưới dạng UTC. Chỉ định ngày mà không có

db.dates.find().pretty()

2 sẽ khiến MongoDB diễn giải đầu vào liên quan đến giờ địa phương hiện tại (mặc dù nó sẽ luôn chuyển đổi và lưu trữ dưới dạng ngày UTC trong nội bộ)

Xác thực loại đối tượng ngày

Tiếp theo, chúng ta có thể hiển thị các tài liệu kết quả để xem cách MongoDB lưu trữ dữ liệu ngày tháng

db.dates.find().pretty()

{

"_id" : ObjectId("62726af5a3dc7398b97e6e93"),

"name" : "Created with `Date()`",

"date" : "Wed May 04 2022 12:00:53 GMT+0000 (UTC)"

}

{

"_id" : ObjectId("62726af5a3dc7398b97e6e94"),

"name" : "Created with `new Date()`",

"date" : ISODate("2022-05-04T12:00:53.307Z")

}

{

"_id" : ObjectId("62726af5a3dc7398b97e6e95"),

"name" : "Created with `ISODate()`",

"date" : ISODate("2022-05-04T12:00:53.307Z")

}

{

"_id" : ObjectId("62728b57a3dc7398b97e6e96"),

"name" : "Future date",

"date" : ISODate("2040-10-28T23:58:18Z")

}

{

"_id" : ObjectId("62728c5ca3dc7398b97e6e97"),

"name" : "Past date",

"date" : ISODate("1852-01-15T11:25:00Z")

}

Theo dự kiến, các trường

use temp_db

db.dates.insertMany([

{

name: "Created with `Date()`",

date: Date(),

},

{

name: "Created with `new Date()`",

date: new Date(),

},

{

name: "Created with `ISODate()`",

date: ISODate(),

},

])

7 được điền bằng

{

"acknowledged" : true,

"insertedIds" : [

ObjectId("62726af5a3dc7398b97e6e93"),

ObjectId("62726af5a3dc7398b97e6e94"),

ObjectId("62726af5a3dc7398b97e6e95")

]

}

8 và

{

"acknowledged" : true,

"insertedIds" : [

ObjectId("62726af5a3dc7398b97e6e93"),

ObjectId("62726af5a3dc7398b97e6e94"),

ObjectId("62726af5a3dc7398b97e6e95")

]

}

6 chứa các đối tượng

use temp_db

db.dates.insertMany([

{

name: "Created with `Date()`",

date: Date(),

},

{

name: "Created with `new Date()`",

date: new Date(),

},

{

name: "Created with `ISODate()`",

date: ISODate(),

},

])

8 (được bao bọc trong trình trợ giúp

db.dates.find().pretty()

8). Ngược lại, trường được điền bởi lệnh gọi hàm

db.dates.insertMany([

{

name: "Future date",

date: ISODate("2040-10-28T23:58:18Z"),

},

{

name: "Past date",

date: new Date("1852-01-15T11:25"),

},

])

4 trần được lưu trữ dưới dạng một chuỗi

Bạn có thể xác minh rằng trường nào trong số các trường

use temp_db

db.dates.insertMany([

{

name: "Created with `Date()`",

date: Date(),

},

{

name: "Created with `new Date()`",

date: new Date(),

},

{

name: "Created with `ISODate()`",

date: ISODate(),

},

])

7 có chứa một đối tượng

use temp_db

db.dates.insertMany([

{

name: "Created with `Date()`",

date: Date(),

},

{

name: "Created with `new Date()`",

date: new Date(),

},

{

name: "Created with `ISODate()`",

date: ISODate(),

},

])

8 thực tế bằng cách gọi một hàm

{

"_id" : ObjectId("62726af5a3dc7398b97e6e93"),

"name" : "Created with `Date()`",

"date" : "Wed May 04 2022 12:00:53 GMT+0000 (UTC)"

}

{

"_id" : ObjectId("62726af5a3dc7398b97e6e94"),

"name" : "Created with `new Date()`",

"date" : ISODate("2022-05-04T12:00:53.307Z")

}

{

"_id" : ObjectId("62726af5a3dc7398b97e6e95"),

"name" : "Created with `ISODate()`",

"date" : ISODate("2022-05-04T12:00:53.307Z")

}

{

"_id" : ObjectId("62728b57a3dc7398b97e6e96"),

"name" : "Future date",

"date" : ISODate("2040-10-28T23:58:18Z")

}

{

"_id" : ObjectId("62728c5ca3dc7398b97e6e97"),

"name" : "Past date",

"date" : ISODate("1852-01-15T11:25:00Z")

}

2 trên tập hợp. Bản đồ kiểm tra từng trường

use temp_db

db.dates.insertMany([

{

name: "Created with `Date()`",

date: Date(),

},

{

name: "Created with `new Date()`",

date: new Date(),

},

{

name: "Created with `ISODate()`",

date: ISODate(),

},

])

7 để xem liệu đối tượng mà nó lưu trữ có phải là một thể hiện của loại

use temp_db

db.dates.insertMany([

{

name: "Created with `Date()`",

date: Date(),

},

{

name: "Created with `new Date()`",

date: new Date(),

},

{

name: "Created with `ISODate()`",

date: ISODate(),

},

])

8 hay không và hiển thị kết quả trong một trường mới có tên là

{

"_id" : ObjectId("62726af5a3dc7398b97e6e93"),

"name" : "Created with `Date()`",

"date" : "Wed May 04 2022 12:00:53 GMT+0000 (UTC)"

}

{

"_id" : ObjectId("62726af5a3dc7398b97e6e94"),

"name" : "Created with `new Date()`",

"date" : ISODate("2022-05-04T12:00:53.307Z")

}

{

"_id" : ObjectId("62726af5a3dc7398b97e6e95"),

"name" : "Created with `ISODate()`",

"date" : ISODate("2022-05-04T12:00:53.307Z")

}

{

"_id" : ObjectId("62728b57a3dc7398b97e6e96"),

"name" : "Future date",

"date" : ISODate("2040-10-28T23:58:18Z")

}

{

"_id" : ObjectId("62728c5ca3dc7398b97e6e97"),

"name" : "Past date",

"date" : ISODate("1852-01-15T11:25:00Z")

}

5. Ngoài ra, chúng tôi sẽ sử dụng phương pháp

{

"_id" : ObjectId("62726af5a3dc7398b97e6e93"),

"name" : "Created with `Date()`",

"date" : "Wed May 04 2022 12:00:53 GMT+0000 (UTC)"

}

{

"_id" : ObjectId("62726af5a3dc7398b97e6e94"),

"name" : "Created with `new Date()`",

"date" : ISODate("2022-05-04T12:00:53.307Z")

}

{

"_id" : ObjectId("62726af5a3dc7398b97e6e95"),

"name" : "Created with `ISODate()`",

"date" : ISODate("2022-05-04T12:00:53.307Z")

}

{

"_id" : ObjectId("62728b57a3dc7398b97e6e96"),

"name" : "Future date",

"date" : ISODate("2040-10-28T23:58:18Z")

}

{

"_id" : ObjectId("62728c5ca3dc7398b97e6e97"),

"name" : "Past date",

"date" : ISODate("1852-01-15T11:25:00Z")

}

6 để hiển thị cách mỗi trường

use temp_db

db.dates.insertMany([

{

name: "Created with `Date()`",

date: Date(),

},

{

name: "Created with `new Date()`",

date: new Date(),

},

{

name: "Created with `ISODate()`",

date: ISODate(),

},

])

7 thực sự được lưu trữ bởi MongoDB

db.dates.find().map(

function(date_doc) {

date_doc["is_a_Date_object"] = date_doc.date instanceof Date;

date_doc["date_storage_value"] = date_doc.date.valueOf();

return date_doc;

}

)

[

{

"_id" : ObjectId("62726af5a3dc7398b97e6e93"),

"name" : "Created with `Date()`",

"date" : "Wed May 04 2022 12:00:53 GMT+0000 (UTC)",

"is_a_Date_object" : false,

"date_storage_value" : "Wed May 04 2022 12:00:53 GMT+0000 (UTC)"

},

{

"_id" : ObjectId("62726af5a3dc7398b97e6e94"),

"name" : "Created with `new Date()`",

"date" : ISODate("2022-05-04T12:00:53.307Z"),

"is_a_Date_object" : true,

"date_storage_value" : 1651665653307

},

{

"_id" : ObjectId("62726af5a3dc7398b97e6e95"),

"name" : "Created with `ISODate()`",

"date" : ISODate("2022-05-04T12:00:53.307Z"),

"is_a_Date_object" : true,

"date_storage_value" : 1651665653307

},

{

"_id" : ObjectId("62728b57a3dc7398b97e6e96"),

"name" : "Future date",

"date" : ISODate("2040-10-28T23:58:18Z"),

"is_a_Date_object" : true,

"date_storage_value" : 2235081498000

},

{

"_id" : ObjectId("62728c5ca3dc7398b97e6e97"),

"name" : "Past date",

"date" : ISODate("1852-01-15T11:25:00Z"),

"is_a_Date_object" : true,

"date_storage_value" : -3722502900000

}

]

Điều này xác nhận rằng các trường được hiển thị dưới dạng

{

"_id" : ObjectId("62726af5a3dc7398b97e6e93"),

"name" : "Created with `Date()`",

"date" : "Wed May 04 2022 12:00:53 GMT+0000 (UTC)"

}

{

"_id" : ObjectId("62726af5a3dc7398b97e6e94"),

"name" : "Created with `new Date()`",

"date" : ISODate("2022-05-04T12:00:53.307Z")

}

{

"_id" : ObjectId("62726af5a3dc7398b97e6e95"),

"name" : "Created with `ISODate()`",

"date" : ISODate("2022-05-04T12:00:53.307Z")

}

{

"_id" : ObjectId("62728b57a3dc7398b97e6e96"),

"name" : "Future date",

"date" : ISODate("2040-10-28T23:58:18Z")

}

{

"_id" : ObjectId("62728c5ca3dc7398b97e6e97"),

"name" : "Past date",

"date" : ISODate("1852-01-15T11:25:00Z")

}

8 là các phiên bản của loại

use temp_db

db.dates.insertMany([

{

name: "Created with `Date()`",

date: Date(),

},

{

name: "Created with `new Date()`",

date: new Date(),

},

{

name: "Created with `ISODate()`",

date: ISODate(),

},

])

8 trong khi

use temp_db

db.dates.insertMany([

{

name: "Created with `Date()`",

date: Date(),

},

{

name: "Created with `new Date()`",

date: new Date(),

},

{

name: "Created with `ISODate()`",

date: ISODate(),

},

])

7 được tạo bằng hàm

db.dates.insertMany([

{

name: "Future date",

date: ISODate("2040-10-28T23:58:18Z"),

},

{

name: "Past date",

date: new Date("1852-01-15T11:25"),

},

])

4 trần thì không

Ngoài ra, đầu ra ở trên cho thấy rằng các đối tượng được lưu trữ với loại

use temp_db

db.dates.insertMany([

{

name: "Created with `Date()`",

date: Date(),

},

{

name: "Created with `new Date()`",

date: new Date(),

},

{

name: "Created with `ISODate()`",

date: ISODate(),

},

])

8 được ghi dưới dạng số nguyên có dấu. Như mong đợi, đối tượng ngày được liên kết với ngày từ năm 1852 là âm vì nó đang đếm ngược từ tháng 1 năm 1970

Truy vấn đối tượng ngày tháng

Nếu bạn có một bộ sưu tập với các biểu thị ngày tháng hỗn hợp như thế này, bạn có thể truy vấn các trường có loại phù hợp bằng cách sử dụng toán tử

db.dates.find().map(

function(date_doc) {

date_doc["is_a_Date_object"] = date_doc.date instanceof Date;

date_doc["date_storage_value"] = date_doc.date.valueOf();

return date_doc;

}

)

3

Chẳng hạn, để truy vấn tất cả các tài liệu trong đó

use temp_db

db.dates.insertMany([

{

name: "Created with `Date()`",

date: Date(),

},

{

name: "Created with `new Date()`",

date: new Date(),

},

{

name: "Created with `ISODate()`",

date: ISODate(),

},

])

7 là một đối tượng

use temp_db

db.dates.insertMany([

{

name: "Created with `Date()`",

date: Date(),

},

{

name: "Created with `new Date()`",

date: new Date(),

},

{

name: "Created with `ISODate()`",

date: ISODate(),

},

])

8, bạn có thể gõ

db.dates.find({

date: { $type: "date" },

}).pretty()

Type | Number | Alias |

------------------ | ------ | ------------ |

Timestamp | 17 | "timestamp" |

0

Thay vào đó, để tìm các trường hợp mà trường

use temp_db

db.dates.insertMany([

{

name: "Created with `Date()`",

date: Date(),

},

{

name: "Created with `new Date()`",

date: new Date(),

},

{

name: "Created with `ISODate()`",

date: ISODate(),

},

])

7 được lưu trữ dưới dạng chuỗi, hãy nhập

Type | Number | Alias |

------------------ | ------ | ------------ |

Timestamp | 17 | "timestamp" |

1_______5_______2

Loại

use temp_db

db.dates.insertMany([

{

name: "Created with `Date()`",

date: Date(),

},

{

name: "Created with `new Date()`",

date: new Date(),

},

{

name: "Created with `ISODate()`",

date: ISODate(),

},

])

8 cho phép bạn thực hiện các truy vấn tìm hiểu mối quan hệ giữa các đơn vị thời gian

Chẳng hạn, bạn có thể so sánh các đối tượng

use temp_db

db.dates.insertMany([

{

name: "Created with `Date()`",

date: Date(),

},

{

name: "Created with `new Date()`",

date: new Date(),

},

{

name: "Created with `ISODate()`",

date: ISODate(),

},

])

8 theo thứ tự như bạn làm với các loại khác. Để kiểm tra các ngày trong tương lai, bạn có thể gõ

Type | Number | Alias |

------------------ | ------ | ------------ |

Timestamp | 17 | "timestamp" |

3_______5_______4

Cách sử dụng phương thức loại use temp_db db.dates.insertMany([ { name: "Created with `Date()`", date: Date(), }, { name: "Created with `new Date()`", date: new Date(), }, { name: "Created with `ISODate()`", date: ISODate(), },])8

Bạn có thể thao tác trên

use temp_db

db.dates.insertMany([

{

name: "Created with `Date()`",

date: Date(),

},

{

name: "Created with `new Date()`",

date: new Date(),

},

{

name: "Created with `ISODate()`",

date: ISODate(),

},

])

8 đối tượng với nhiều phương thức và toán tử đi kèm. Chẳng hạn, bạn có thể trích xuất các thành phần ngày và giờ khác nhau từ một ngày và in ở nhiều định dạng khác nhau

Trình diễn có lẽ là cách nhanh nhất để giới thiệu chức năng này

Trước tiên, hãy chọn ngày từ tài liệu có đối tượng ngày

Type | Number | Alias |

------------------ | ------ | ------------ |

Timestamp | 17 | "timestamp" |

5

Bây giờ, chúng ta có thể chọn trường

use temp_db

db.dates.insertMany([

{

name: "Created with `Date()`",

date: Date(),

},

{

name: "Created with `new Date()`",

date: new Date(),

},

{

name: "Created with `ISODate()`",

date: ISODate(),

},

])

7 và trích xuất các thành phần khác nhau từ trường đó bằng cách gọi các phương thức khác nhau trên đối tượng

Type | Number | Alias |

------------------ | ------ | ------------ |

Timestamp | 17 | "timestamp" |

6_______5_______7

Ngoài ra còn có các phương pháp đồng hành có thể được sử dụng để đặt thời gian bằng cách cung cấp các thành phần ngày và giờ khác nhau. Ví dụ: bạn có thể thay đổi năm bằng cách gọi phương thức

[

{

"_id" : ObjectId("62726af5a3dc7398b97e6e93"),

"name" : "Created with `Date()`",

"date" : "Wed May 04 2022 12:00:53 GMT+0000 (UTC)",

"is_a_Date_object" : false,

"date_storage_value" : "Wed May 04 2022 12:00:53 GMT+0000 (UTC)"

},

{

"_id" : ObjectId("62726af5a3dc7398b97e6e94"),

"name" : "Created with `new Date()`",

"date" : ISODate("2022-05-04T12:00:53.307Z"),

"is_a_Date_object" : true,

"date_storage_value" : 1651665653307

},

{

"_id" : ObjectId("62726af5a3dc7398b97e6e95"),

"name" : "Created with `ISODate()`",

"date" : ISODate("2022-05-04T12:00:53.307Z"),

"is_a_Date_object" : true,

"date_storage_value" : 1651665653307

},

{

"_id" : ObjectId("62728b57a3dc7398b97e6e96"),

"name" : "Future date",

"date" : ISODate("2040-10-28T23:58:18Z"),

"is_a_Date_object" : true,

"date_storage_value" : 2235081498000

},

{

"_id" : ObjectId("62728c5ca3dc7398b97e6e97"),

"name" : "Past date",

"date" : ISODate("1852-01-15T11:25:00Z"),

"is_a_Date_object" : true,

"date_storage_value" : -3722502900000

}

]

2

Type | Number | Alias |

------------------ | ------ | ------------ |

Timestamp | 17 | "timestamp" |

8_______5_______9

Chúng tôi cũng có thể truyền ngày thành các định dạng khác nhau để hiển thị

use temp_db

db.dates.insertMany([

{

name: "Created with `Date()`",

date: Date(),

},

{

name: "Created with `new Date()`",

date: new Date(),

},

{

name: "Created with `ISODate()`",

date: ISODate(),

},

])

0

use temp_db

db.dates.insertMany([

{

name: "Created with `Date()`",

date: Date(),

},

{

name: "Created with `new Date()`",

date: new Date(),

},

{

name: "Created with `ISODate()`",

date: ISODate(),

},

])

1

Đây là tất cả các phương thức chủ yếu được liên kết với loại

use temp_db

db.dates.insertMany([

{

name: "Created with `Date()`",

date: Date(),

},

{

name: "Created with `new Date()`",

date: new Date(),

},

{

name: "Created with `ISODate()`",

date: ISODate(),

},

])

8 của JavaScript

Cách sử dụng các hàm tổng hợp MongoDB use temp_db db.dates.insertMany([ { name: "Created with `Date()`", date: Date(), }, { name: "Created with `new Date()`", date: new Date(), }, { name: "Created with `ISODate()`", date: ISODate(), },])8

MongoDB cung cấp một số chức năng khác cũng có thể thao tác ngày tháng. Một ví dụ hữu ích về điều này là hàm tổng hợp

[

{

"_id" : ObjectId("62726af5a3dc7398b97e6e93"),

"name" : "Created with `Date()`",

"date" : "Wed May 04 2022 12:00:53 GMT+0000 (UTC)",

"is_a_Date_object" : false,

"date_storage_value" : "Wed May 04 2022 12:00:53 GMT+0000 (UTC)"

},

{

"_id" : ObjectId("62726af5a3dc7398b97e6e94"),

"name" : "Created with `new Date()`",

"date" : ISODate("2022-05-04T12:00:53.307Z"),

"is_a_Date_object" : true,

"date_storage_value" : 1651665653307

},

{

"_id" : ObjectId("62726af5a3dc7398b97e6e95"),

"name" : "Created with `ISODate()`",

"date" : ISODate("2022-05-04T12:00:53.307Z"),

"is_a_Date_object" : true,

"date_storage_value" : 1651665653307

},

{

"_id" : ObjectId("62728b57a3dc7398b97e6e96"),

"name" : "Future date",

"date" : ISODate("2040-10-28T23:58:18Z"),

"is_a_Date_object" : true,

"date_storage_value" : 2235081498000

},

{

"_id" : ObjectId("62728c5ca3dc7398b97e6e97"),

"name" : "Past date",

"date" : ISODate("1852-01-15T11:25:00Z"),

"is_a_Date_object" : true,

"date_storage_value" : -3722502900000

}

]

5. Bạn có thể chuyển cuộc gọi

[

{

"_id" : ObjectId("62726af5a3dc7398b97e6e93"),

"name" : "Created with `Date()`",

"date" : "Wed May 04 2022 12:00:53 GMT+0000 (UTC)",

"is_a_Date_object" : false,

"date_storage_value" : "Wed May 04 2022 12:00:53 GMT+0000 (UTC)"

},

{

"_id" : ObjectId("62726af5a3dc7398b97e6e94"),

"name" : "Created with `new Date()`",

"date" : ISODate("2022-05-04T12:00:53.307Z"),

"is_a_Date_object" : true,

"date_storage_value" : 1651665653307

},

{

"_id" : ObjectId("62726af5a3dc7398b97e6e95"),

"name" : "Created with `ISODate()`",

"date" : ISODate("2022-05-04T12:00:53.307Z"),

"is_a_Date_object" : true,

"date_storage_value" : 1651665653307

},

{

"_id" : ObjectId("62728b57a3dc7398b97e6e96"),

"name" : "Future date",

"date" : ISODate("2040-10-28T23:58:18Z"),

"is_a_Date_object" : true,

"date_storage_value" : 2235081498000

},

{

"_id" : ObjectId("62728c5ca3dc7398b97e6e97"),

"name" : "Past date",

"date" : ISODate("1852-01-15T11:25:00Z"),

"is_a_Date_object" : true,

"date_storage_value" : -3722502900000

}

]

5 với đối tượng

use temp_db

db.dates.insertMany([

{

name: "Created with `Date()`",

date: Date(),

},

{

name: "Created with `new Date()`",

date: new Date(),

},

{

name: "Created with `ISODate()`",

date: ISODate(),

},

])

8, trình xác định chuỗi định dạng và chỉ báo múi giờ. MongoDB sẽ sử dụng chuỗi định dạng làm mẫu để tìm ra cách xuất đối tượng

use temp_db

db.dates.insertMany([

{

name: "Created with `Date()`",

date: Date(),

},

{

name: "Created with `new Date()`",

date: new Date(),

},

{

name: "Created with `ISODate()`",

date: ISODate(),

},

])

8 đã cho với múi giờ được sử dụng để bù đầu ra từ UTC một cách chính xác

Ở đây, chúng tôi sẽ định dạng ngày tháng trong bộ sưu tập

[

{

"_id" : ObjectId("62726af5a3dc7398b97e6e93"),

"name" : "Created with `Date()`",

"date" : "Wed May 04 2022 12:00:53 GMT+0000 (UTC)",

"is_a_Date_object" : false,

"date_storage_value" : "Wed May 04 2022 12:00:53 GMT+0000 (UTC)"

},

{

"_id" : ObjectId("62726af5a3dc7398b97e6e94"),

"name" : "Created with `new Date()`",

"date" : ISODate("2022-05-04T12:00:53.307Z"),

"is_a_Date_object" : true,

"date_storage_value" : 1651665653307

},

{

"_id" : ObjectId("62726af5a3dc7398b97e6e95"),

"name" : "Created with `ISODate()`",

"date" : ISODate("2022-05-04T12:00:53.307Z"),

"is_a_Date_object" : true,

"date_storage_value" : 1651665653307

},

{

"_id" : ObjectId("62728b57a3dc7398b97e6e96"),

"name" : "Future date",

"date" : ISODate("2040-10-28T23:58:18Z"),

"is_a_Date_object" : true,

"date_storage_value" : 2235081498000

},

{

"_id" : ObjectId("62728c5ca3dc7398b97e6e97"),

"name" : "Past date",

"date" : ISODate("1852-01-15T11:25:00Z"),

"is_a_Date_object" : true,

"date_storage_value" : -3722502900000

}

]

9 của chúng tôi bằng cách sử dụng một chuỗi tùy ý. Chúng tôi cũng sẽ chuyển ngày sang múi giờ New York

Trước tiên, chúng tôi cần xóa mọi tài liệu thất lạc có thể đã lưu trường

use temp_db

db.dates.insertMany([

{

name: "Created with `Date()`",

date: Date(),

},

{

name: "Created with `new Date()`",

date: new Date(),

},

{

name: "Created with `ISODate()`",

date: ISODate(),

},

])

7 dưới dạng chuỗi

use temp_db

db.dates.insertMany([

{

name: "Created with `Date()`",

date: Date(),

},

{

name: "Created with `new Date()`",

date: new Date(),

},

{

name: "Created with `ISODate()`",

date: ISODate(),

},

])

2

Bây giờ chúng ta có thể chạy một tập hợp với hàm

db.dates.find({

date: { $type: "date" },

}).pretty()

1

use temp_db

db.dates.insertMany([

{

name: "Created with `Date()`",

date: Date(),

},

{

name: "Created with `new Date()`",

date: new Date(),

},

{

name: "Created with `ISODate()`",

date: ISODate(),

},

])

3

use temp_db

db.dates.insertMany([

{

name: "Created with `Date()`",

date: Date(),

},

{

name: "Created with `new Date()`",

date: new Date(),

},

{

name: "Created with `ISODate()`",

date: ISODate(),

},

])

4

Hàm

db.dates.find({

date: { $type: "date" },

}).pretty()

2 cũng hữu ích tương tự. Nó có thể được sử dụng để phân tách một trường

use temp_db

db.dates.insertMany([

{

name: "Created with `Date()`",

date: Date(),

},

{

name: "Created with `new Date()`",

date: new Date(),

},

{

name: "Created with `ISODate()`",

date: ISODate(),

},

])

8 thành các phần cấu thành của nó

Ví dụ, chúng ta có thể gõ

use temp_db

db.dates.insertMany([

{

name: "Created with `Date()`",

date: Date(),

},

{

name: "Created with `new Date()`",

date: new Date(),

},

{

name: "Created with `ISODate()`",

date: ISODate(),

},

])

5

use temp_db

db.dates.insertMany([

{

name: "Created with `Date()`",

date: Date(),

},

{

name: "Created with `new Date()`",

date: new Date(),

},

{

name: "Created with `ISODate()`",

date: ISODate(),

},

])

6

Có thông tin về các chức năng bổ sung mà bạn có thể sử dụng để thao tác với các đối tượng

use temp_db

db.dates.insertMany([

{

name: "Created with `Date()`",

date: Date(),

},

{

name: "Created with `new Date()`",

date: new Date(),

},

{

name: "Created with `ISODate()`",

date: ISODate(),

},

])

8 để hiển thị hoặc so sánh

Phần kết luận

Trong hướng dẫn này, chúng tôi đã đề cập đến một số cách khác nhau mà bạn có thể làm việc với dữ liệu ngày và giờ trong MongoDB. Hầu hết dữ liệu tạm thời có lẽ nên được lưu trữ trong kiểu dữ liệu

use temp_db

db.dates.insertMany([

{

name: "Created with `Date()`",

date: Date(),

},

{

name: "Created with `new Date()`",

date: new Date(),

},

{

name: "Created with `ISODate()`",

date: ISODate(),

},

])

8 của MongoDB vì điều này mang lại sự linh hoạt tốt khi thao tác trên dữ liệu hoặc hiển thị dữ liệu đó

Làm quen với cách dữ liệu ngày và giờ được lưu trữ nội bộ, cách ép buộc dữ liệu đó thành các định dạng mong muốn trên đầu ra và cách so sánh, sửa đổi và phân tách dữ liệu thành các phần hữu ích có thể giúp bạn giải quyết nhiều vấn đề khác nhau. Mặc dù thông tin ngày tháng có thể khó xử lý, nhưng việc tận dụng các phương pháp và người vận hành có sẵn có thể giúp giảm thiểu một số công việc nặng nhọc

LIÊN QUAN ĐẾN PRISMA. IO

Nếu bạn đang sử dụng MongoDB, hãy kiểm tra trình kết nối MongoDB của Prisma. Bạn có thể tự tin sử dụng Prisma Client để quản lý cơ sở dữ liệu MongoDB sản xuất

Để bắt đầu làm việc với MongoDB và Prisma, hãy xem hướng dẫn bắt đầu từ đầu của chúng tôi hoặc cách thêm vào một dự án hiện có

Làm cách nào để lấy ngày từ MongoDB trong Java?

Mã Java ví dụ sau được sử dụng để truy vấn trường ngày MongoDB, mà bạn thấy giá trị của nó là, e. g. , ISODate("2020-09-23T10. 42. 16. 983Z") trong vỏ mongo. Và, ngày này được lưu trữ trong cơ sở dữ liệu MongoDB với kiểu Ngày. DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd H. m. s"); Ngày từDate = dateFormat .

Làm cách nào để đọc ngày từ MongoDB?

Ngày() .
Date() trả về ngày hiện tại dưới dạng chuỗi trong mongosh
new Date() trả về ngày hiện tại dưới dạng đối tượng Date. mongosh bao bọc đối tượng Date bằng trình trợ giúp ISODate. ISODate là trong UTC

Làm cách nào để tìm kiếm ngày trong MongoDB?

Chúng ta có thể sử dụng lệnh date () để lấy ngày ở dạng chuỗi trong truy vấn mà không cần từ khóa new hoặc trình bao MongoDB.

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

Hoạt động của dấu thời gian trong mongodb rất đơn giản, khi được thực thi, phương thức dấu thời gian sẽ gọi currentDate(), sẽ chọn ngày và giờ hiện tại của hệ thống. This picked date and time will be stored in the collection, along with the other data values.