Hướng dẫn mongodb timestamp to date - dấu thời gian mongodb cho đến nay

I need to convert the timestamp to date and update it in the same field, in Mongosh. Here is the data:

Show
{   _id: 1, 
    name: 'Annelise',
    movies: [ { movieid: 12, rating: 3, timestamp: 97830291 } ] },
{   _id: 2,
    name: 'Maria',
    movies: [ { movieid: 3, rating: 3, timestamp: 978301398 } ]
  },
  {
    _id: 3,
    name: 'Paul',
    movies: [ { movieid: 23, rating: 4, timestamp: 978302174 } ]
  },
  {
    _id: 4,
    name: 'Fred',
    movies: [
      { movieid: 23, rating: 4, timestamp: 978302174 },
      { moviedid: 45, rating: 2, timestamp: 978302149 }
    ]
  },
  { _id: 5, name: 'Annelise', timestamp: 97830291 },
  { _id: 6, name: 'Maria', timestamp: 978301398 },
  { _id: 7, name: 'Paul', timestamp: 978302174 },
  { _id: 8, name: 'Fred', timestamp: 978302149 }

I tried using an aggregation pipeline, but I have 2 problems:

  • This command works to update the timestamps for _id 5 to 8, but how can I save it to the same field?
db.usertest.aggregate(
        [ {"$project": 
                {"timestamp": { $dateToString: { format: "%Y-%m-%d", date: { "$toDate": {$toLong:"$timestamp"}}}}
        } } ])
  • How can I update the timestamp inside the movies array for _id 1 to 4? I tried the following but this does not work:
db.usertest.aggregate( [ {"$project": {"timestamp": { $dateToString: { format: "%Y-%m-%d", date: { "$toDate": {$toLong:"$timestamp"}}}}}} ])

Thanks for your help!

Tôi mới đến MongoDB. Tôi có mã sau tạo bộ sưu tập và tài liệu nhưng không có trường dấu thời gian. Có cách nào để chèn

db.usertest.aggregate(
        [ {"$project": 
                {"timestamp": { $dateToString: { format: "%Y-%m-%d", date: { "$toDate": {$toLong:"$timestamp"}}}}
        } } ])
2 tự động trong các tài liệu.

Nội dung chính ShowShow

  • Giới thiệu về Dấu thời gian MongoDB
  • Làm thế nào để dấu thời gian hoạt động trong MongoDB?
  • Các ví dụ để thực hiện dấu thời gian MongoDB
  • Và như bạn có thể thấy, khi chúng tôi tìm nạp bản ghi mới được chèn, tất cả các bản trả về là _id, là mặc định và khóa TS, mà chúng tôi đã không vượt qua bất kỳ giá trị nào, nhưng nó đã chọn và lưu trữ thời gian hiện tại của thời gian hiện tại của hệ thống.
  • Bài viết đề xuất
  • MongoDB có dấu thời gian không?
  • Ngày được lưu trữ trong MongoDB như thế nào?
  • Làm thế nào để MongoDB lưu trữ ngày và thời gian trong Node JS?
  • Làm thế nào để MongoDB lưu trữ ngày sinh?

db.createCollection("countries"); //Created collection
db.countries.insert({"short_name":"AF","country_name":"Afganistan"});  //Created document
db.countries.find()
{ "_id" : ObjectId("53d1d5bcb8173a625961ff34"), "short_name" : "AF", "country_name" : "Afganistan" }

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.

Tôi mới đến MongoDB. Tôi có mã sau tạo bộ sưu tập và tài liệu nhưng không có trường dấu thời gian. Có cách nào để chèn

db.usertest.aggregate(
        [ {"$project": 
                {"timestamp": { $dateToString: { format: "%Y-%m-%d", date: { "$toDate": {$toLong:"$timestamp"}}}}
        } } ])
2 tự động trong các tài liệu.

Nội dung chính Show35 gold badges322 silver badges307 bronze badges

Giới thiệu về Dấu thời gian MongoDBJul 25, 2014 at 4:15

Làm thế nào để dấu thời gian hoạt động trong MongoDB?Sadikhasan

Các ví dụ để thực hiện dấu thời gian MongoDB20 gold badges79 silver badges119 bronze badges

6

Những gì tôi thực sự sau đó là gán một "created_on" mặc định cho các tài liệu của tôi bằng Cake PHP. Làm cách nào bạn làm được việc đó?

db.usertest.aggregate(
        [ {"$project": 
                {"timestamp": { $dateToString: { format: "%Y-%m-%d", date: { "$toDate": {$toLong:"$timestamp"}}}}
        } } ])
3

Neil Lunn

db.usertest.aggregate(
        [ {"$project": 
                {"timestamp": { $dateToString: { format: "%Y-%m-%d", date: { "$toDate": {$toLong:"$timestamp"}}}}
        } } ])
4

Phù bằng vàng 144K3535 gold badges322 silver badges307 bronze badges

  1. Hỏi ngày 25 tháng 7 năm 2014 lúc 4:15Jul 25, 2014 at 4:15

    db.usertest.aggregate(
            [ {"$project": 
                    {"timestamp": { $dateToString: { format: "%Y-%m-%d", date: { "$toDate": {$toLong:"$timestamp"}}}}
            } } ])
    
    5

  2. SadikhasansadikhasanSadikhasan

    db.usertest.aggregate(
            [ {"$project": 
                    {"timestamp": { $dateToString: { format: "%Y-%m-%d", date: { "$toDate": {$toLong:"$timestamp"}}}}
            } } ])
    
    6

18.1k20 Huy hiệu vàng79 Huy hiệu bạc119 Huy hiệu đồng20 gold badges79 silver badges119 bronze badges

MongoDB sẽ không tự động chèn bất cứ thứ gì ngoại trừ trường '_id'. Bạn có thể nhận thời gian chèn từ trường '_id' như thế này -Jul 25, 2014 at 6:09

0

Kết quả sẽ trông giống như thế này -

echo (new MongoDB\BSON\ObjectId("612e10058e19a6074399f7dd"))->getTimestamp();

Đã trả lời ngày 4 tháng 9 năm 2021 lúc 20:15Sep 4, 2021 at 20:15Sep 4, 2021 at 20:15

ERYKERYKErykEryk

383 Huy hiệu bạc7 Huy hiệu đồng3 silver badges7 bronze badges3 silver badges7 bronze badges

Giới thiệu về Dấu thời gian MongoDB

Trong MongoDB, một loại dấu thời gian đặc biệt được BSON cung cấp cho việc sử dụng nội bộ và không được kết nối với loại dữ liệu thông thường của MongoDB cho dữ liệu. Thời gian sử dụng nội bộ có giá trị 64 bit, trong đó 64 bit này là sự kết hợp của hai giá trị 32 bit.

Hai phần này là:

Đầu tiên là giá trị Time_t là phần quan trọng nhất, trong khi phần ít quan trọng nhất là thứ tự cho hoạt động, nó là tăng dần. Hai 32 bit này với nhau làm cho giá trị 64 bit. Phần quan trọng nhất, bao gồm Time_T, được so sánh trên tất cả các nền tảng, và sau đó giá trị thứ tự được so sánh.

Các giá trị dấu thời gian luôn là duy nhất trong MongoDB với một ví dụ Mongod duy nhất. Dấu thời gian cũng được sử dụng trong nhật ký ghi nhật ký và các tệp hệ thống.

Cú pháp #1

Bây giờ chúng tôi đã hiểu dấu thời gian là gì, sau đây là cú pháp tiêu chuẩn cho dấu thời gian: TS:

db.usertest.aggregate(
        [ {"$project": 
                {"timestamp": { $dateToString: { format: "%Y-%m-%d", date: { "$toDate": {$toLong:"$timestamp"}}}}
        } } ])
7

  • Giải thích: Thực hiện cú pháp trên sẽ lưu trữ thời gian và ngày hiện tại của hệ thống trong tài liệu. Executing the above syntax will store the system’s current time and date within the document. Executing the above syntax will store the system’s current time and date within the document.
  • MongoDB Shell cung cấp một cách tốt hơn để truy xuất ngày và thời gian, trên đó một tài liệu cụ thể được lưu trữ. Để tìm nạp thời gian ngày, tất cả những gì chúng ta cần là đối tượng của tài liệu.

Cú pháp #2

db.usertest.aggregate(
        [ {"$project": 
                {"timestamp": { $dateToString: { format: "%Y-%m-%d", date: { "$toDate": {$toLong:"$timestamp"}}}}
        } } ])
8

  • Giải thích: Sau khi thực hiện, vỏ MongoDB sẽ truy xuất thời gian ngày liên quan đến ID đối tượng được truyền. Lợi nhuận sẽ ở định dạng isodate, với ngày và thời gian chính xác của hoạt động. Tham khảo ảnh chụp màn hình dưới đây cho đầu ra: Upon execution, the mongodb shell will retrieve the date-time associated with the object id passed. The return will be in the ISODate format, with the exact date and time of the operation. Refer the below screenshot for output: Upon execution, the mongodb shell will retrieve the date-time associated with the object id passed. The return will be in the ISODate format, with the exact date and time of the operation. Refer the below screenshot for output:

  • Dấu thời gian MongoDB trông tương tự như kiểu dữ liệu ngày, trong đó nó có cùng giá trị 64 bit. Nhưng nó cũng có một vài khía cạnh khác với ngày. Dấu thời gian MongoDB khá được sử dụng cho mục đích nội bộ và với mỗi trường hợp của MongoDB, các giá trị được tạo ra cho dấu thời gian là duy nhất.

Làm thế nào để dấu thời gian hoạt động trong MongoDB?

Hoạt động của dấu thời gian trong MongoDB rất đơn giản, trong đó khi được thực hiện, phương thức dấu thời gian sẽ gọi hiện tại (), sẽ chọn ngày và thời gian hiện tại của hệ thống. Ngày và thời gian được 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. Và khi chúng tôi không chỉ định ngày hoặc ngày hiện tại hoặc trường Dấu thời gian, $ CurrentDate sẽ tự động được đặt và lưu trữ trong tài liệu.

Các ví dụ để thực hiện dấu thời gian MongoDB

Bây giờ chúng tôi đã hiểu dấu thời gian ở MongoDB và cách nó hoạt động cùng với cú pháp của nó cho phép chúng tôi thực hiện nó. Ví dụ đầu tiên của chúng tôi là một bản ghi trống với dấu thời gian.

Ví dụ 1

Hãy để chèn một tài liệu trống với dấu thời gian để hiểu việc thực hiện dấu thời gian. Truy vấn của chúng tôi dưới đây là một truy vấn chèn, được chèn vào một tài liệu trống mẫu, trong bộ sưu tập kiểm tra thời gian. Cùng với bản ghi trống, chúng tôi sẽ vượt qua dấu thời gian.

Cú pháp

db.usertest.aggregate(
        [ {"$project": 
                {"timestamp": { $dateToString: { format: "%Y-%m-%d", date: { "$toDate": {$toLong:"$timestamp"}}}}
        } } ])
9

Để giải thích, truy vấn ở trên sẽ chèn một tài liệu trong bộ sưu tập kiểm tra thời gian, tài liệu này trống, không có cặp giá trị khóa ngoại trừ TS: đó là dấu thời gian của chúng tôi. Tham khảo ảnh chụp màn hình dưới đây để biết sự hiểu biết đúng về truy vấn chèn:

Code:

echo (new MongoDB\BSON\ObjectId("612e10058e19a6074399f7dd"))->getTimestamp();
0

Output:

Và như bạn có thể thấy, khi chúng tôi tìm nạp bản ghi mới được chèn, tất cả các bản trả về là _id, là mặc định và khóa TS, mà chúng tôi đã không vượt qua bất kỳ giá trị nào, nhưng nó đã chọn và lưu trữ thời gian hiện tại của thời gian hiện tại của hệ thống.

Ví dụ #2

Chúng tôi đã hiểu cách chèn một tài liệu trống và tiếp theo chúng tôi sẽ cố gắng chèn một tài liệu với một số giá trị chính, cùng với dấu thời gian, sử dụng isodate (). Sau đây là truy vấn và giải thích:

Cú pháp

echo (new MongoDB\BSON\ObjectId("612e10058e19a6074399f7dd"))->getTimestamp();
1

Để giải thích, truy vấn ở trên sẽ chèn một tài liệu trong bộ sưu tập kiểm tra thời gian, tài liệu này trống, không có cặp giá trị khóa ngoại trừ TS: đó là dấu thời gian của chúng tôi. Tham khảo ảnh chụp màn hình dưới đây để biết sự hiểu biết đúng về truy vấn chèn:

Code:

echo (new MongoDB\BSON\ObjectId("612e10058e19a6074399f7dd"))->getTimestamp();
0

Output:

Và như bạn có thể thấy, khi chúng tôi tìm nạp bản ghi mới được chèn, tất cả các bản trả về là _id, là mặc định và khóa TS, mà chúng tôi đã không vượt qua bất kỳ giá trị nào, nhưng nó đã chọn và lưu trữ thời gian hiện tại của thời gian hiện tại của hệ thống.

Ví dụ #2

Chúng tôi đã hiểu cách chèn một tài liệu trống và tiếp theo chúng tôi sẽ cố gắng chèn một tài liệu với một số giá trị chính, cùng với dấu thời gian, sử dụng isodate (). Sau đây là truy vấn và giải thích:

Cú pháp

echo (new MongoDB\BSON\ObjectId("612e10058e19a6074399f7dd"))->getTimestamp();
3

Để giải thích, truy vấn ở trên sẽ chèn một tài liệu trong bộ sưu tập kiểm tra thời gian, tài liệu này trống, không có cặp giá trị khóa ngoại trừ TS: đó là dấu thời gian của chúng tôi. Tham khảo ảnh chụp màn hình dưới đây để biết sự hiểu biết đúng về truy vấn chèn:

Và như bạn có thể thấy, khi chúng tôi tìm nạp bản ghi mới được chèn, tất cả các bản trả về là _id, là mặc định và khóa TS, mà chúng tôi đã không vượt qua bất kỳ giá trị nào, nhưng nó đã chọn và lưu trữ thời gian hiện tại của thời gian hiện tại của hệ thống.

Code:

echo (new MongoDB\BSON\ObjectId("612e10058e19a6074399f7dd"))->getTimestamp();
0

Output:

Ví dụ #2

Chúng tôi đã hiểu cách chèn một tài liệu trống và tiếp theo chúng tôi sẽ cố gắng chèn một tài liệu với một số giá trị chính, cùng với dấu thời gian, sử dụng isodate (). Sau đây là truy vấn và giải thích:

Cú pháp

Cú pháp

echo (new MongoDB\BSON\ObjectId("612e10058e19a6074399f7dd"))->getTimestamp();
5

Code:

echo (new MongoDB\BSON\ObjectId("612e10058e19a6074399f7dd"))->getTimestamp();
0

Output:

Để giải thích, truy vấn ở trên sẽ chèn một tài liệu trong bộ sưu tập kiểm tra thời gian, tài liệu này trống, không có cặp giá trị khóa ngoại trừ TS: đó là dấu thời gian của chúng tôi. Tham khảo ảnh chụp màn hình dưới đây để biết sự hiểu biết đúng về truy vấn chèn:

Và như bạn có thể thấy, khi chúng tôi tìm nạp bản ghi mới được chèn, tất cả các bản trả về là _id, là mặc định và khóa TS, mà chúng tôi đã không vượt qua bất kỳ giá trị nào, nhưng nó đã chọn và lưu trữ thời gian hiện tại của thời gian hiện tại của hệ thống.

Ví dụ #2

Truy vấn trên sẽ chèn một tài liệu duy nhất trong bộ sưu tập kiểm tra thời gian, với khóa là City và Pune là giá trị của nó. Khóa được thêm vào là ngày chèn vào ngày, đó là một dấu thời gian khi xảy ra hoạt động chèn. Chúng tôi chỉ đơn giản là sử dụng isodate (), chọn hệ thống thời gian hiện tại và lưu trữ nó. Tham khảo ảnh chụp màn hình dưới đây:

Bài viết đề xuất

  1. Đây là một hướng dẫn về dấu thời gian mongoDB. Ở đây chúng tôi thảo luận về phần giới thiệu về Dấu thời gian MongoDB, nó hoạt động như thế nào và các ví dụ tương ứng. Bạn cũng có thể xem qua các bài viết liên quan khác của chúng tôi để tìm hiểu thêm -
  2. MongoDB không gian địa lý
  3. MongoDB findAndModify
  4. Các loại dữ liệu MongoDB

Quản trị MongoDB

MongoDB có dấu thời gian không?BSON has a special timestamp type for internal MongoDB use and is not associated with the regular Date type. This internal timestamp type is a 64 bit value where: the most significant 32 bits are a time_t value (seconds since the Unix epoch)

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 gianBSON has a special timestamp type for internal MongoDB use and is not associated with the regular Date type. This internal timestamp type is a 64 bit value where: the most significant 32 bits are a time_t value (seconds since the Unix epoch)

Ngày được lưu trữ trong MongoDB như thế nào?

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.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.

Làm thế nào để MongoDB lưu trữ ngày và thời gian trong Node JS?native javascript Date() or ISO date format as it internally converts it into BSON native Date object.

Đị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.

Làm thế nào để MongoDB lưu trữ ngày sinh?new Date(""); Which returns the ISODate with the specified date without a timestamp. MongoDB uses the ISO-8601 date notation, to represent date objects.