Kiểu dữ liệu trong mongodb là gì?
Khi chúng tôi lưu trữ các cặp khóa-giá trị có liên quan cùng nhau trong một tập hợp các cặp khóa-giá trị, tập hợp này được gọi là tài liệu. Dưới đây là một ví dụ về tài liệu chứa dữ liệu về một nhân viên Show { "employee_name": "John Doe", "employee_skills": "UI Design", "employee_salary": 40000, "employee_status": true, } Giới thiệu về kiểu dữ liệuTrong tài liệu trên, bạn có thể thấy rằng chúng tôi đã lưu trữ nhiều giá trị cho một nhân viên. Điều này rất giống với cách chúng tôi lưu trữ dữ liệu trong một hàng trong RDBMS điển hình. Các tài liệu tương tự được lưu trữ cùng nhau trong một bộ sưu tập. Bạn có thể coi các bộ sưu tập tương đương với NoSQL của một bảng RDBMS với một số điểm khác biệt chính mà chúng ta sẽ không thảo luận trong bài viết này Trong tài liệu trên, bạn có thể thấy rằng chúng tôi có 4 cặp khóa-giá trị khác nhau. Các giá trị có thể thuộc các loại khác nhau, ví dụ: trong trường hợp này, employee_name và employee_skills có các giá trị kiểu Chuỗi, employee_salary thuộc loại số và employee_status thuộc loại boolean Có các loại dữ liệu này (và hơn thế nữa) trong MongoDB cho phép chúng tôi lưu trữ dữ liệu ở định dạng hiệu quả hơn và cũng thực hiện các truy vấn mạnh mẽ và hiệu quả cao trên dữ liệu được lưu trữ Sử dụng đúng kiểu dữ liệu để lưu trữ các trường dữ liệu trong tài liệu là rất quan trọng đối với sự thành công của hệ thống cơ sở dữ liệu. Dưới đây là một số loại dữ liệu được sử dụng nhiều nhất có sẵn trong MongoDB
Chúng ta sẽ xem xét tất cả những điều này với các ví dụ nhưng trước đó, hãy xem JSON và BSON để hiểu cách MongoDB lưu trữ dữ liệu JSON và BSONJSON là viết tắt của Ký hiệu đối tượng JavaScript. Đây là một định dạng rất phổ biến được sử dụng bởi các API và dịch vụ web để trả lại dữ liệu cho khách hàng. Định dạng này được sử dụng rộng rãi vì tính đơn giản và dễ phân tích cú pháp. Hầu hết các ngôn ngữ lập trình hiện đại không cần lớp ứng dụng bổ sung để phân tích dữ liệu JSON Các đối tượng JSON là các thùng chứa liên kết đơn giản, trong đó dữ liệu được lưu trữ dưới dạng một tập hợp các cặp khóa-giá trị. Trong trường hợp này, một khóa được ánh xạ tới một giá trị (có thể là một số, chuỗi, hàm hoặc thậm chí là một đối tượng khác) MongoDB cũng lưu trữ dữ liệu dưới dạng tài liệu JSON nhưng dữ liệu JSON được mã hóa nhị phân. Điều này dẫn đến BSON. BSON chỉ đơn giản là viết tắt của JSON nhị phân. Cấu trúc nhị phân của BSON mã hóa thông tin về loại và độ dài, cho phép nó được phân tích cú pháp nhanh hơn nhiều và do đó mang lại hiệu suất tốt hơn Tóm lại, MongoDB lưu trữ dữ liệu ở định dạng BSON cả nội bộ và qua mạng, nhưng điều đó không có nghĩa là bạn không thể coi MongoDB là cơ sở dữ liệu JSON. Mọi thứ bạn có thể trình bày trong JSON đều có thể được lưu trữ nguyên bản trong MongoDB và được truy xuất dễ dàng trong JSON Các kiểu dữ liệu MongoDB khác nhauHãy cùng xem xét từng loại dữ liệu do MongoDB cung cấp với các ví dụ và hiểu các trường hợp sử dụng tốt nhất cho chúng
{ "employee_name": "John Doe", "employee_skills": "UI Design", "employee_salary": 40000, "employee_status": true, } Tài liệu trên có hai khóa có giá trị kiểu String. Cụ thể, employee_name và employee_skills có các giá trị Chuỗi. Đây là những giá trị đơn giản nhất và được sử dụng để đại diện cho một loạt các ký tự
{ "employee_name": "John Doe", "employee_skills": "UI Design", "employee_salary": 40000, "employee_status": true, } Khóa employee_salary lưu trữ một giá trị số và do đó nó thuộc kiểu số nguyên
{ "employee_name": "John Doe", "employee_skills": "UI Design", "employee_score": 97.67, "employee_status": true, }
{ "employee_name": "John Doe", "employee_skills": "UI Design", "employee_score": 97.67, "employee_status": true, } Booleans sử dụng ít bộ nhớ hơn một số nguyên hoặc chuỗi và tránh mọi tác dụng phụ không mong muốn của việc so sánh
{ "employee_name": "John Doe", "employee_skills": ["UI Design", "Graphic Design", "2D Animation"], "employee_score": 97.67, "employee_status": true, } Trong ví dụ trên, trường employee_skills chứa một mảng kiểu String trong đó mỗi giá trị trong mảng là một String Đây là một ví dụ khác trong đó thay vì một mảng thuộc loại đơn giản (Chuỗi), các tài liệu được nhúng trong mảng { "item_code": "1234-ABCD", "item_price": 49.99, "item_stock": [{ "warehouse": "Warehouse A", "qty": 1200 }, { "warehouse": "Warehouse B", "qty": 900 }], } Trong tài liệu trên, trường item_stock chứa một mảng các tài liệu nhúng
Dưới đây là một ví dụ về cách một ngày được lưu trữ trong một tài liệu { "student_name": "Bob Stan", "student_dob": ISODate("2006-02-10T10:50:42.389Z"), "student_marks": 78.98 } Trong ví dụ trên, ngày được lưu trữ có thể dễ dàng được chuyển đổi sang định dạng có thể đọc được bằng cách sử dụng JavaScript mới Date("2006-02-10T10. 50. 42. chức năng 389Z"). Nó sẽ trả về đầu ra sau Thứ 6 ngày 10 tháng 2 năm 2006 16. 20. 42 GMT+0530 (Giờ chuẩn Ấn Độ)
Trong ví dụ trên, trường item_dimensions là một tài liệu được nhúng vì nó chứa tập hợp các cặp khóa-giá trị riêng. Do đó, trường này thuộc loại Đối tượng
Đây là cách giá trị dấu thời gian trông như thế nào trong tài liệu khi nó được truy vấn { "employee_name": "John Doe", "employee_skills": "UI Design", "employee_salary": 40000, "employee_status": true, }0 Kiểu dữ liệu dấu thời gian thường được sử dụng để theo dõi thời gian tạo/chỉnh sửa/cập nhật tài liệu. Hàm Timestamp() mới được sử dụng trong quá trình chèn và máy chủ sẽ tự động thêm dấu thời gian vào trường
{ "employee_name": "John Doe", "employee_skills": "UI Design", "employee_salary": 40000, "employee_status": true, }1 Điều này cũng tương tự với tài liệu sau khi trường này hoàn toàn không có { "employee_name": "John Doe", "employee_skills": "UI Design", "employee_salary": 40000, "employee_status": true, }2
Đây là một ví dụ { "employee_name": "John Doe", "employee_skills": "UI Design", "employee_salary": 40000, "employee_status": true, }3 Trường _id được thêm tự động cho mọi tài liệu nếu bạn không chỉ định rõ ràng một trường với loại ObjectID
Đây là một ví dụ { "employee_name": "John Doe", "employee_skills": "UI Design", "employee_salary": 40000, "employee_status": true, }4 BinData đây là đại diện base64 của nội dung nhị phân
{ "employee_name": "John Doe", "employee_skills": "UI Design", "employee_salary": 40000, "employee_status": true, }5 Không xác định hiện không được dùng nữa trong MongoDB 4. 4
{ "employee_name": "John Doe", "employee_skills": "UI Design", "employee_salary": 40000, "employee_status": true, }6
Trong BSON, có hai loại khác nhau được định nghĩa cho các hàm không có bao đóng, JavaScript và một loại khác cho các hàm có bao đóng, JavaScript có Phạm vi. JavaScript với Phạm vi hiện không được dùng nữa trong MongoDB 4. 4 Vì vậy, đây là tất cả các kiểu dữ liệu quan trọng và nổi bật nhất trong MongoDB. BSON hỗ trợ nhiều kiểu dữ liệu hơn JSON. Một số kiểu dữ liệu cũ hơn và ít được sử dụng hơn sẽ bị xóa khỏi kệ hỗ trợ MongoDB và phạm vi hoặc hỗ trợ cho các kiểu mới hơn được cải thiện theo thời gian. Đây là một quá trình thường xanh Ba loại dữ liệu trong bộ sưu tập MongoDB là gì?Số nguyên - Loại này được sử dụng để lưu trữ một giá trị số. Số nguyên có thể là 32 bit hoặc 64 bit tùy thuộc vào máy chủ của bạn. Boolean - Loại này được sử dụng để lưu trữ giá trị boolean (true/false). Double - Loại này được sử dụng để lưu trữ các giá trị dấu phẩy động
Định dạng dữ liệu MongoDB là gì?BSON là định dạng được sử dụng cho cả lưu trữ dữ liệu và truyền mạng trong MongoDB. Sau khi lưu trữ dữ liệu trong MongoDB, bạn có thể muốn lấy lại dữ liệu của mình dưới dạng JSON, trong số nhiều định dạng khác.
Kiểu dữ liệu cho thời gian trong MongoDB là gì?Cách được đề xuất để lưu trữ ngày tháng trong MongoDB là sử dụng kiểu dữ liệu BSON Date . Đặc tả BSON đề cập đến loại Ngày là ngày giờ UTC và là số nguyên 64 bit. Nó đại diện cho số mili giây kể từ kỷ nguyên Unix, là 00. 00. 00 UTC ngày 1 tháng 1 năm 1970.
Loại dữ liệu nào có thể được lưu trữ trong bộ sưu tập MongoDB?MongoDB sử dụng JSON nhị phân và MQL thay thế cho SQL. BSON cho phép các loại dữ liệu như dấu phẩy động, thời gian dài, ngày tháng và nhiều loại dữ liệu khác không được JSON thông thường hỗ trợ. MQL cung cấp các khả năng bổ sung khi so sánh với SQL thông thường, làm cho nó phù hợp hơn với MongoDB khi nó xử lý các tài liệu kiểu JSON. |