Hướng dẫn how is datetime stored in mongodb? - datetime được lưu trữ trong mongodb như thế nào?

Hướng dẫn how is datetime stored in mongodb? - datetime được lưu trữ trong mongodb như thế nào?

Ngày và thời gian trong lập trình có thể là một thách thức. Sự kiện đang diễn ra trong múi giờ nào? Định dạng ngày nào đang được sử dụng? Đó là

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 hay

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? Việc giải quyết theo tiêu chuẩn là rất quan trọng đối với việc lưu trữ dữ liệu và sau đó một lần nữa khi hiển thị ngày và giờ. Cách khuyến nghị để lưu trữ ngày trong MongoDB là sử dụng kiểu dữ liệu ngày BSON.

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 or

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? Settling on a standard is important for data storage and then again when displaying the date and time. The recommended way to store dates in MongoDB is to use the BSON Date data type.

Thông số kỹ thuật BSON đề cập đến 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(),

},

])

9 là DateTime UTC và là số nguyên 64 bit. Nó đại diện cho số mili giây kể từ thời đại Unix, đó là 00:00:00 UTC vào ngày 1 tháng 1 năm 1970. Điều này cung cấp rất nhiều sự linh hoạt trong các ngày trong quá khứ và tương lai. Với số nguyên 64 bit được sử dụng, chúng tôi có thể đại diện cho ngày khoảng 290 triệu năm trước và sau kỷ nguyên. Là một số nguyên có chữ ký 64 bit, chúng tôi có thể đại diện cho ngày trước ngày 1 tháng 1 năm 1970 với số âm và số dương đại diện cho ngày sau ngày 1 tháng 1 năm 1970.BSON Specification refers to the

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(),

},

])

9 type as the UTC datetime and is a 64-bit integer. It represents the number of milliseconds since the Unix epoch, which was 00:00:00 UTC on 1 January 1970. This provides a lot of flexibilty in past and future dates. With a 64-bit integer in use, we are able to represent dates roughly 290 million years before and after the epoch. As a signed 64-bit integer we are able to represent dates prior to 1 Jan 1970 with a negative number and positive numbers represent dates after 1 Jan 1970.

Tại sao và sử dụng ở đâu

Bạn sẽ muốn sử dụng 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(),

},

])

9 bất cứ khi nào bạn cần lưu trữ các giá trị ngày và/hoặc thời gian trong MongoDB. Bạn cũng có thể đã thấy một loại dữ liệu

{

"acknowledged" : true,

"insertedIds" : [

ObjectId("62726af5a3dc7398b97e6e93"),

ObjectId("62726af5a3dc7398b97e6e94"),

ObjectId("62726af5a3dc7398b97e6e95")

]

}

1 và nghĩ rằng "Ồ, đó là những gì tôi cần." Tuy nhiên, loại dữ liệu

{

"acknowledged" : true,

"insertedIds" : [

ObjectId("62726af5a3dc7398b97e6e93"),

ObjectId("62726af5a3dc7398b97e6e94"),

ObjectId("62726af5a3dc7398b97e6e95")

]

}

1 nên được để lại để sử dụng nội bộ trong MongoDB. 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(),

},

])

9 là loại dữ liệu mà chúng tôi sẽ muốn sử dụng để phát triển ứng dụ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(),

},

])

9 data type whenever you need to store date and/or time values in MongoDB. You may have seen a

{

"acknowledged" : true,

"insertedIds" : [

ObjectId("62726af5a3dc7398b97e6e93"),

ObjectId("62726af5a3dc7398b97e6e94"),

ObjectId("62726af5a3dc7398b97e6e95")

]

}

1 data type as well and thought "Oh, that's what I need." However, the

{

"acknowledged" : true,

"insertedIds" : [

ObjectId("62726af5a3dc7398b97e6e93"),

ObjectId("62726af5a3dc7398b97e6e94"),

ObjectId("62726af5a3dc7398b97e6e95")

]

}

1 data type should be left for internal usage in MongoDB. The

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(),

},

])

9 type is the data type we'll want to use for application development.

Cách sử dụng

Có một số lợi ích khi sử dụng loại 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(),

},

])

9 ở chỗ nó đi kèm với một số tính năng và phương pháp tiện dụng. Cần gán một 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(),

},

])

9 cho một biến? Chúng tôi có bạn bảo hiểm ở đó:

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(),

},

])

9 data type in that it comes with some handy features and methods. Need to assign a

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(),

},

])

9 type to a variable? We have you covered there:

Hướng dẫn how is datetime stored in mongodb? - datetime được lưu trữ trong mongodb như thế nào?

Điều đó đã tạo ra chính xác những gì?

Rất tốt, chúng tôi có một ngày và thời gian được gói làm một isodate. Nếu chúng ta cần được in ở định dạng

{

"acknowledged" : true,

"insertedIds" : [

ObjectId("62726af5a3dc7398b97e6e93"),

ObjectId("62726af5a3dc7398b97e6e94"),

ObjectId("62726af5a3dc7398b97e6e95")

]

}

6, chúng ta có thể sử dụng phương thức

{

"acknowledged" : true,

"insertedIds" : [

ObjectId("62726af5a3dc7398b97e6e93"),

ObjectId("62726af5a3dc7398b97e6e94"),

ObjectId("62726af5a3dc7398b97e6e95")

]

}

7.

{

"acknowledged" : true,

"insertedIds" : [

ObjectId("62726af5a3dc7398b97e6e93"),

ObjectId("62726af5a3dc7398b97e6e94"),

ObjectId("62726af5a3dc7398b97e6e95")

]

}

6 format, we can use the

{

"acknowledged" : true,

"insertedIds" : [

ObjectId("62726af5a3dc7398b97e6e93"),

ObjectId("62726af5a3dc7398b97e6e94"),

ObjectId("62726af5a3dc7398b97e6e95")

]

}

7 method.

Gói (lại

Bắt đầu khám phá các loại BSON, như ngày, với MongoDB Atlas ngay hôm nay!MongoDB Atlas today!

Trường

{

"acknowledged" : true,

"insertedIds" : [

ObjectId("62726af5a3dc7398b97e6e93"),

ObjectId("62726af5a3dc7398b97e6e94"),

ObjectId("62726af5a3dc7398b97e6e95")

]

}

8 là loại dữ liệu được khuyến nghị sử dụng khi bạn muốn lưu trữ thông tin ngày và giờ trong MongoDB. Nó cung cấp tính linh hoạt để lưu trữ các giá trị ngày và thời gian theo định dạng nhất quán có thể dễ dàng được lưu trữ và truy xuất bởi ứng dụng của bạn. Hãy thử loại dữ liệu BSON

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(),

},

])

9 thử cho các ứng dụng của bạn.

{

"acknowledged" : true,

"insertedIds" : [

ObjectId("62726af5a3dc7398b97e6e93"),

ObjectId("62726af5a3dc7398b97e6e94"),

ObjectId("62726af5a3dc7398b97e6e95")

]

}

8 field is the recommended data type to use when you want to store date and time information in MongoDB. It provides the flexibility to store date and time values in a consistent format that can easily be stored and retrieved by your application. Give the BSON

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(),

},

])

9 data type a try for your applications.

Giới thiệu

Dữ liệu ngày và thời gian 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ó hơn để xử lý chính xác so với nó xuất hiện ban đầu. Cơ sở dữ liệu phải có khả năng lưu trữ dữ liệu ngày và giờ ở các định dạng rõ ràng, rõ ràng, chuyển đổi dữ liệu đó thành các định dạng thân thiện với người dùng để tương tác với các ứ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 các phức tạp như thời gian tiết kiệm ánh sáng ban ngày.

Trong hướng dẫn này, chúng tôi 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à thời gian. Chúng tôi sẽ khám phá các loại dữ liệu có liên quan, xem các nhà khai thác và phương pháp và xem xét cách sử dụng tốt nhất các công cụ này để giữ dữ liệu ngày và giờ của bạn theo thứ tự tốt.

Liên quan đến Prisma.io

Nếu bạn đang sử dụng MongoDB, hãy kiểm tra đầu nối MongoDB của PRISMA! Bạn có thể sử dụng máy khách PRISMA để quản lý cơ sở dữ liệu MongoDB sản xuất một cách tự tin.

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

Giới thiệu về tác giả)

Justin Ellingwood

Justin đã viết về cơ sở dữ liệu, Linux, cơ sở hạ tầng và các công cụ phát triển từ năm 2013. Anh hiện đang sống ở Berlin với vợ và hai con thỏ. Anh ta thường không phải viết ở ngôi thứ ba, đó là một sự giải thoát cho tất cả các bên liên quan.

Type | Number | Alias |

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

Date | 9 | "date" |

Làm thế nào để MongoDB lưu trữ ngày sinh?

Chỉ cần sử dụng: Ngày mới (""); Mà trả về isodate với ngày được chỉ định mà không có dấu thời gian. MongoDB sử dụng ký hiệu ngày ISO-8601, để biểu thị các đối tượng ngày.

  • Làm thế nào để MongoDB lưu trữ ngày và thời gian trong Node JS?
  • Định dạng tốt nhất để lưu trữ ngày và thời gian trong MongoDB là định dạng ngày JavaScript bản địa () hoặc ISO khi nó chuyển đổi nó thành đối tượng ngày gốc BSON.

Dấu thời gian mongoDB là định dạng nào?

Dấu thời gian. BSON có loại dấu thời gian đặc biệt để sử dụng MongoDB nội bộ và không được liên kết với loại ngày thông thường. Loại dấu thời gian bên trong này là giá trị 64 bit trong đó: 32 bit quan trọng nhất là giá trị thời gian

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à chia cắt, 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 bạn. Loại ngày thường có thể đáp ứng bất kỳ yêu cầu nào cho 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 với PRISMA, bản đồ kiểu 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(),

},

])

9 trực tiếp đến loại

{

"acknowledged" : true,

"insertedIds" : [

ObjectId("62726af5a3dc7398b97e6e93"),

ObjectId("62726af5a3dc7398b97e6e94"),

ObjectId("62726af5a3dc7398b97e6e95")

]

}

8 trong PRISMA.

Prisma là một bộ công cụ cơ sở dữ liệu nguồn mở cho TypeScript và Node.js nhằm mục đích làm cho các nhà phát triển ứng dụng 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(),

},

])

9 mới theo hai cách khác nhau:

  • db.dates.insertMany([

    {

    name: "Future date",

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

    },

    {

    name: "Past date",

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

    },

    ])

    9: Trả về một ngày và thời gian 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(),

    },

    ])

    9.
  • 1: Trả về một ngày và thời gian 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(),

    },

    ])

    9.

Cả hai phương pháp

db.dates.insertMany([

{

name: "Future date",

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

},

{

name: "Past date",

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

},

])

9 và
1 đề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(),

},

])

9 được bọc trong hàm trợ giúp
1.

Ngoài ra, gọi hàm

7 mà không có hàm tạo 
8 trả về một ngày và thời gian 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(),

},

])

9:

  • 7: Trả về một ngày và thời gian dưới dạng chuỗi.

Điều quan trọng là phải ghi nhớ sự khác biệt này giữa hai loại này vì nó ảnh hưởng đến những gì hoạt động có sẵn, cách lưu trữ thông tin và mức độ linh hoạt của nó sẽ cung cấp cho bạn. Nói chung, hầu như luôn luôn tốt nhất để lưu trữ thông tin ngày 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(),

},

])

9 và sau đó định dạng nó cho đầu ra khi cần thiết.

Chúng ta hãy xem cách hoạt động của nó trong một phiên vỏ MongoDB.

Đầu tiên, chúng ta có thể chuyển sang 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ó trường

{

"acknowledged" : true,

"insertedIds" : [

ObjectId("62726af5a3dc7398b97e6e93"),

ObjectId("62726af5a3dc7398b97e6e94"),

ObjectId("62726af5a3dc7398b97e6e95")

]

}

8. Chúng tôi sử dụng một phương thức khác nhau để điền trường

{

"acknowledged" : true,

"insertedIds" : [

ObjectId("62726af5a3dc7398b97e6e93"),

ObjectId("62726af5a3dc7398b97e6e94"),

ObjectId("62726af5a3dc7398b97e6e95")

]

}

8 cho mỗ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(),

},

])

{

"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 và giờ hiện tại. Bạn có thể lưu trữ một ngày và thời gian 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"),

},

])

Chúng 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(),

},

])

9 vào ngày và thời gian thích hợp.

Một điều cần lưu ý là sự bao gồm của dấu vết

{

"_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 trong tài liệu mới đầu tiên ở trên. Điều này chỉ ra rằng ngày và thời gian đang được cung cấp dưới dạng UTC. Chỉ định ngày mà không có

{

"_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 sẽ khiến MongoDB diễn giải đầu vào liên quan đến thời gian địa phương hiện tại (mặc dù nó sẽ luôn luôn chuyển đổi và lưu trữ nó dưới dạng ngày UTC bên trong).

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 mong muốn lưu trữ dữ liệu ngày như thế nào:

{

"_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")

}

Đúng như dự đoán, các trường

{

"acknowledged" : true,

"insertedIds" : [

ObjectId("62726af5a3dc7398b97e6e93"),

ObjectId("62726af5a3dc7398b97e6e94"),

ObjectId("62726af5a3dc7398b97e6e95")

]

}

8 được điền với
1 và 

db.dates.insertMany([

{

name: "Future date",

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

},

{

name: "Past date",

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

},

])

9 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(),

},

])

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

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;

}

)

1). Ngược lại, trường được tạo ra bởi cuộc gọi chức năng trần
7 được lưu trữ dưới dạng chuỗi.

Bạn có thể xác minh xem các trường

{

"acknowledged" : true,

"insertedIds" : [

ObjectId("62726af5a3dc7398b97e6e93"),

ObjectId("62726af5a3dc7398b97e6e94"),

ObjectId("62726af5a3dc7398b97e6e95")

]

}

8 có chứa đố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(),

},

])

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

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;

}

)

5 trên bộ sưu tập. Bản đồ kiểm tra từng trường

{

"acknowledged" : true,

"insertedIds" : [

ObjectId("62726af5a3dc7398b97e6e93"),

ObjectId("62726af5a3dc7398b97e6e94"),

ObjectId("62726af5a3dc7398b97e6e95")

]

}

8 để xem liệu đối tượng 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(),

},

])

9 hay không và hiển thị kết quả trong một trường mới gọi là

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;

}

)

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

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;

}

)

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

{

"acknowledged" : true,

"insertedIds" : [

ObjectId("62726af5a3dc7398b97e6e93"),

ObjectId("62726af5a3dc7398b97e6e94"),

ObjectId("62726af5a3dc7398b97e6e95")

]

}

8 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)",

"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

}

]

1 là các trường hợp 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(),

},

])

9 trong khi

{

"acknowledged" : true,

"insertedIds" : [

ObjectId("62726af5a3dc7398b97e6e93"),

ObjectId("62726af5a3dc7398b97e6e94"),

ObjectId("62726af5a3dc7398b97e6e95")

]

}

8 được tạo với hàm trần
7 không.

Ngoài ra, đầu ra trên cho thấy 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(),

},

])

9 được ghi là số nguyên đã ký. Đúng như dự đoán, đối tượng ngày liên quan đến ngày từ năm 1852 là âm vì nó được tính ngược từ tháng 1 năm 1970.

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

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

[

{

"_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

}

]

6.

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

{

"acknowledged" : true,

"insertedIds" : [

ObjectId("62726af5a3dc7398b97e6e93"),

ObjectId("62726af5a3dc7398b97e6e94"),

ObjectId("62726af5a3dc7398b97e6e95")

]

}

8 là đố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(),

},

])

9, bạn có thể nhập:

db.dates.find({

date: { $type: "date" },

}).pretty()

Type | Number | Alias |

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

Timestamp | 17 | "timestamp" |

0

Để tìm các trường hợp trong đó trường

{

"acknowledged" : true,

"insertedIds" : [

ObjectId("62726af5a3dc7398b97e6e93"),

ObjectId("62726af5a3dc7398b97e6e94"),

ObjectId("62726af5a3dc7398b97e6e95")

]

}

8 được lưu trữ dưới dạng chuỗi, hãy loại:

Type | Number | Alias |

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

Timestamp | 17 | "timestamp" |

1

Type | Number | Alias |

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

Timestamp | 17 | "timestamp" |

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(),

},

])

9 cho phép bạn thực hiện các truy vấn 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(),

},

])

9 theo quy định như bạn làm với các loại khác. Để kiểm tra ngày trong tương lai, bạn có thể nhập:

Type | Number | Alias |

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

Timestamp | 17 | "timestamp" |

3

Type | Number | Alias |

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

Timestamp | 17 | "timestamp" |

4

Cách sử dụng các phương thức loại ____29

Bạn có thể hoạt động trên 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(),

},

])

9 với nhiều phương thức và toán tử được bao gồ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.

Một cuộc biểu tình có lẽ là cách nhanh nhất để thể hiện chức năng này.

Đầu 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

{

"acknowledged" : true,

"insertedIds" : [

ObjectId("62726af5a3dc7398b97e6e93"),

ObjectId("62726af5a3dc7398b97e6e94"),

ObjectId("62726af5a3dc7398b97e6e95")

]

}

8 và trích xuất các thành phần khác nhau từ nó 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

Type | Number | Alias |

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

Timestamp | 17 | "timestamp" |

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 thời gian và ngày khác nhau. Ví dụ: bạn có thể thay đổi năm bằng cách gọi phương thức

db.dates.find({

date: { $type: "date" },

}).pretty()

5:

Type | Number | Alias |

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

Timestamp | 17 | "timestamp" |

8

Type | Number | Alias |

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

Timestamp | 17 | "timestamp" |

9

Chúng tôi cũng có thể chuyển ngày vào 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 pháp chủ yếu liên quan đến 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(),

},

])

9 của JavaScript.

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

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

db.dates.find({

date: { $type: "date" },

}).pretty()

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

db.dates.find({

date: { $type: "date" },

}).pretty()

8 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(),

},

])

9, 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(),

},

])

9 đã 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 các ngày trong bộ sưu tập

Type | Number | Alias |

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

Timestamp | 17 | "timestamp" |

02 của chúng tôi bằng cách sử dụng chuỗi tùy ý. Chúng tôi cũng sẽ diễn ra những ngày đến New York Timezone.

Đầu tiên, chúng ta cần xóa bất kỳ tài liệu đi lạc nào có thể đã lưu trường

{

"acknowledged" : true,

"insertedIds" : [

ObjectId("62726af5a3dc7398b97e6e93"),

ObjectId("62726af5a3dc7398b97e6e94"),

ObjectId("62726af5a3dc7398b97e6e95")

]

}

8 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

Type | Number | Alias |

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

Timestamp | 17 | "timestamp" |

04:

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

Type | Number | Alias |

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

Timestamp | 17 | "timestamp" |

05 cũng hữu ích tương tự. Nó có thể được sử dụng để phân tách 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(),

},

])

9 thành các bộ 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

Tài liệu MongoDB về các chức năng tổng hợp có thông tin về các chức năng bổ sung mà bạn có thể sử dụng để thao tác 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(),

},

])

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

Sự 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(),

},

])

9 của MongoDB vì điều này cung cấp rất nhiều tính linh hoạt khi hoạt động trên dữ liệu hoặc hiển thị nó.

Làm quen với cách lưu trữ dữ liệu ngày và thời gian trong nội bộ, cách ép nó 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 khối 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 có thể là thách thức để làm việc, tận dụng các phương pháp và nhà khai thác có sẵn có thể giúp giảm thiểu một số công việc nặng nề.

Liên quan đến Prisma.io

Nếu bạn đang sử dụng MongoDB, hãy kiểm tra đầu nối MongoDB của PRISMA! Bạn có thể sử dụng máy khách PRISMA để quản lý cơ sở dữ liệu MongoDB sản xuất một cách tự tin.

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

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

Giới thiệu về tác giả)

Hướng dẫn how is datetime stored in mongodb? - datetime được lưu trữ trong mongodb như thế nào?

Justin Ellingwood

Justin đã viết về cơ sở dữ liệu, Linux, cơ sở hạ tầng và các công cụ phát triển từ năm 2013. Anh hiện đang sống ở Berlin với vợ và hai con thỏ. Anh ta thường không phải viết ở ngôi thứ ba, đó là một sự giải thoát cho tất cả các bên liên quan.

Làm thế nào để MongoDB lưu trữ ngày sinh?

Chỉ cần sử dụng: Ngày mới ("");Mà trả về isodate với ngày được chỉ định mà không có dấu thời gian.MongoDB sử dụng ký hiệu ngày ISO-8601, để biểu thị các đối tượng ngày.new Date(""); Which returns the ISODate with the specified date without a timestamp. MongoDB uses the ISO-8601 date notation, to represent date objects.

Làm thế nào để MongoDB lưu trữ ngày và thời gian trong Node JS?

Định dạng tốt nhất để lưu trữ ngày và thời gian trong MongoDB là định dạng ngày JavaScript bản địa () hoặc ISO khi nó chuyển đổi nó thành đối tượng ngày gốc BSON.native javascript Date() or ISO date format as it internally converts it into BSON native Date object.

Dấu thời gian mongoDB là định dạng nào?

Dấu thời gian.BSON có loại dấu thời gian đặc biệt để sử dụng MongoDB nội bộ và không được liên kết với loại ngày thông thường.Loại dấu thời gian bên trong này là giá trị 64 bit trong đó: 32 bit quan trọng nhất là giá trị thời gian64 bit value where: the most significant 32 bits are a time_t value (seconds since the Unix epoch)

MongoDB có ngày ở UTC không?

MongoDB sẽ lưu trữ thông tin ngày và thời gian bằng UTC trong nội bộ, nhưng có thể dễ dàng chuyển đổi sang thời gian khác tại thời điểm truy xuất khi cần thiết., but can easily convert to other timezones at time of retrieval as needed.