Ba loại dữ liệu trong bộ sưu tập MongoDB là gì?

Tài liệu, bao gồm các cặp trường/giá trị, là trung tâm của cấu trúc dữ liệu MongoDB. Hầu hết các tương tác với MongoDB xảy ra ở cấp độ tài liệu

Một trường có thể chứa một giá trị, nhiều trường hoặc nhiều phần tử

Ba loại dữ liệu trong bộ sưu tập MongoDB là gì?
(Nguồn)

Một giá trị được tạo thành từ nhiều trường được gọi là tài liệu nhúng và được gán loại dữ liệu Đối tượng (xem trường cars trong ảnh chụp màn hình). Khi được hiển thị ở định dạng JSON, tài liệu nhúng được đặt trong dấu ngoặc nhọn và tuân theo cấu trúc giống như tài liệu (chính) bên ngoài

Ba loại dữ liệu trong bộ sưu tập MongoDB là gì?
(Nguồn)

Một giá trị được tạo thành từ nhiều phần tử được gọi là một mảng và được gán kiểu dữ liệu Array (xem trường Profession trong ảnh chụp màn hình). Khi được hiển thị ở định dạng JSON, một mảng được đặt trong dấu ngoặc vuông, với mỗi phần tử được phân tách bằng dấu phẩy. Một phần tử có thể là một giá trị vô hướng (như trong trường Profession) hoặc một tài liệu nhúng (như trong trường cars)

Kiểu dữ liệu MongoDB

Một trường có thể là một trong các kiểu dữ liệu MongoDB này

TypeAliasDouble“double”String“string”Object“object”Array“array”Dữ liệu nhị phân“binData”Undefined“undefined”ObjectId“objectId”Boolean“bool”Date“date”Null“null”Biểu thức chính quy“regex”DBPointer“dbPointer”

Không có gì đáng ngạc nhiên, có nhiều thứ hơn nữa về cấu trúc dữ liệu tài liệu so với những gì được đề cập ở đây. Để biết thêm thông tin chi tiết, hãy xem các chủ đề Cơ sở dữ liệu và Bộ sưu tập và Tài liệu trong hướng dẫn sử dụng MongoDB

Thuật ngữ có thể bạn chưa biết

loại dữ liệu. một thuộc tính cho biết loại dữ liệu mà giá trị đó có thể có. Các kiểu dữ liệu phổ biến bao gồm. số nguyên, chuỗi, giá trị dấu phẩy động (nguồn)

tài liệu nhúng. dữ liệu liên quan được đính kèm trong một cấu trúc hoặc tài liệu (nguồn)

giá trị vô hướng. một biến giữ một giá trị tại một thời điểm. Nó là một thành phần duy nhất giả định một loạt các giá trị số hoặc chuỗi (nguồn)

Sau đây là danh sách các kiểu dữ liệu có thể sử dụng trong MongoDB

Kiểu dữ liệuDescriptionStringString là kiểu dữ liệu được sử dụng phổ biến nhất. Nó được sử dụng để lưu trữ dữ liệu. Một chuỗi phải là UTF 8 hợp lệ trong mongodb. Số nguyênSố nguyên được sử dụng để lưu trữ giá trị số. Nó có thể là 32 bit hoặc 64 bit tùy thuộc vào máy chủ bạn đang sử dụng. Boolean Kiểu dữ liệu này được sử dụng để lưu trữ các giá trị boolean. Nó chỉ hiển thị giá trị CÓ/KHÔNG. Kiểu dữ liệu Double Double lưu trữ các giá trị dấu phẩy động. Phím Min/MaxKiểu dữ liệu này so sánh một giá trị với các phần tử bson thấp nhất và cao nhất. MảngKiểu dữ liệu này được sử dụng để lưu trữ một danh sách hoặc nhiều giá trị vào một khóa duy nhất. Đối tượng Loại dữ liệu đối tượng được sử dụng cho tài liệu nhúng. NullIt được sử dụng để lưu trữ các giá trị null. Biểu tượngNó thường được sử dụng cho các ngôn ngữ sử dụng một loại cụ thể. Ngày Loại dữ liệu này lưu trữ ngày hoặc giờ hiện tại ở định dạng thời gian unix. Nó giúp bạn có thể chỉ định ngày giờ của riêng mình bằng cách tạo đối tượng ngày tháng và chuyển giá trị ngày, tháng, năm vào đó

Bài viết này sẽ giới thiệu về các loại dữ liệu chính trong MongoDB với các ví dụ mã để minh họa từng loại

Cùng với XML, JSON (Ký hiệu đối tượng JavaScript) là định dạng trao đổi dữ liệu chính được sử dụng trong phát triển web hiện đại. Cơ sở dữ liệu NoSQL như MongoDB sử dụng JSON để lưu trữ các bản ghi. JSON hỗ trợ tất cả các kiểu dữ liệu cơ bản như số, chuỗi, ký tự, boolean, v.v. JSON được MongoDB đại diện ở định dạng được mã hóa nhị phân được gọi là JSON được mã hóa nhị phân (BSON). BSON cung cấp thêm kiểu dữ liệu cho mô hình JSON. MongoDB hỗ trợ tất cả các loại dữ liệu BSON.  

Các loại kiểu dữ liệu MongoDB khác nhau

Chuỗi

Chuỗi là kiểu dữ liệu MongoDB được sử dụng phổ biến nhất. Chuỗi trong BSON là UTF-8. Bất kỳ giá trị nào được viết bên trong dấu ngoặc kép trong biểu diễn JSON đều là giá trị chuỗi. Giống như trong ví dụ sau, Peter là giá trị được gán cho trường tên

> db. Loại dữ liệu. điền tên. "Peter"})
WriteResult({ "nInserted". 1 })
> db. Loại dữ liệu. tìm thấy(). xinh()
{ "_id". ObjectId("5d35e069956ce18f101ef12d"), "tên". "Peter" }
>

số nguyên

Số nguyên là một trong những kiểu dữ liệu cơ bản được sử dụng trong mọi ngôn ngữ lập trình. Nó được sử dụng để lưu trữ một giá trị số nguyên. Hai dạng của loại dữ liệu này có trong Mongodb, 32 bit và 64 bit. Trong biểu diễn JSON sau đây, trường tuổi có giá trị số nguyên

> db. Loại dữ liệu. chèn ({tuổi. 21})
WriteResult({ "nInserted". 1 })
> db. Loại dữ liệu. tìm thấy(). xinh()
{ "_id". ObjectId("5d35e160956ce18f101ef12e"), "tuổi". 21 }
>

Gấp đôi

Trong khi kiểu dữ liệu Số nguyên chỉ lưu trữ một giá trị số nguyên, kiểu dữ liệu Double được sử dụng để lưu trữ giá trị dấu phẩy động

> db. Loại dữ liệu. chèn ({dấu. 94. 5})
WriteResult({ "nInserted". 1 })
> db. Loại dữ liệu. tìm thấy(). xinh()
{ "_id". ObjectId("5d35e194956ce18f101ef12f"), "điểm". 94. 5 }
>

Nếu một cặp khóa-giá trị được chèn vào bên trong một tài liệu khác, nó được gọi là tài liệu được nhúng. Kiểu dữ liệu đối tượng được sử dụng để lưu trữ tài liệu nhúng. Ví dụ: Trong biểu diễn JSON sau đây, Địa chỉ là một kiểu dữ liệu đối tượng

> địa chỉ var ={ đường phố. "123 đường số 5", thành phố. "New York", đất nước. "Hoa Kỳ"}
> db. Loại dữ liệu. điền tên. "Peter", địa chỉ. address})
WriteResult({ "nInserted". 1 })
>db. Loại dữ liệu. tìm thấy(). xinh()
{ "_id". ObjectId("5d35e194956ce18f101ef12f"), "điểm". 94. 5 }
{
        "_id". ObjectId("5d35e1fb956ce18f101ef130"),
        "tên". "Peter",
        "địa chỉ". {
                "đường phố". "123 5th street",
                "thành phố". "New York",
                "quốc gia". "Hoa Kỳ"
        }
}
>

Boolean

Các kiểu dữ liệu Boolean lưu trữ các giá trị boolean. Trong ví dụ sau, cả hai trường đều thuộc kiểu dữ liệu Boolean

> db. Loại dữ liệu. chèn ({thành viên. đúng, thủ tướng. false})
WriteResult({ "nInserted". 1 })
> db. Loại dữ liệu. tìm thấy(). xinh()
{
        "_id". ObjectId("5d35e22f956ce18f101ef131"),
        "thành viên". true,
        "thủ tướng". sai
}
>

Ghi chú. giá trị boolean không được viết bên trong dấu ngoặc kép

Kiểu dữ liệu ngày lưu trữ ngày hoặc giờ hiện tại. Có các phương thức được sử dụng để trả về ngày. Nó có thể là một đối tượng chuỗi hoặc ngày. Có ba phương pháp như vậy. 1. Date(), trả về một chuỗi. 2. Ngày mới (), trả về một đối tượng ngày. 3. ISODate(), cũng trả về một đối tượng ngày tháng

Trong biểu diễn sau, firstDate, secondDate và thirdDate được tạo bằng cách sử dụng Date(), New Date() và ISODate() tương ứng

> var date1 = Date()
> var date2 = new Date()
> var date3 = new ISODate()
> db.datatypes.insert({firstDate: date1, secondDate: date2, thirdDate: date3})
WriteResult({ "nInserted". 1 })
>db. Loại dữ liệu. tìm thấy(). xinh()
{
        "_id". ObjectId("5d35e2c0956ce18f101ef132"),
        "firstDate". "Thứ hai, ngày 22 tháng 7 năm 2019 21. 51. 42 GMT+0530 (Giờ chuẩn Ấn Độ)",
        "secondDate". ISODate("2019-07-22T16. 21. 48. 099Z"),
        " thirdDate". ISODate("2019-07-22T16. 22. 02. 109Z")
}
>

Dữ liệu nhị phân

Kiểu dữ liệu nhị phân được sử dụng để lưu trữ dữ liệu nhị phân

> var data = BinData(1, "232sa3d323sd232a32sda3s2d3a2s1d23s21d3sa")
> db. Loại dữ liệu. chèn ({dữ liệu nhị phân. data})
WriteResult({ "nInserted". 1 })
>db. Loại dữ liệu. tìm thấy(). xinh()
{
        "_id". ObjectId("5d35e347956ce18f101ef133"),
        "binaryData". BinData(1,"232sa3d323sd232a32sda3s2d3a2s1d23s21d3sa")
}
>

Mảng

Mảng được lưu trữ trong các kiểu dữ liệu này. Mảng chứa một tập hợp các giá trị. Các giá trị bên trong mảng có thể thuộc bất kỳ kiểu dữ liệu nào. Giá trị bên trong một mảng được đặt trong dấu ngoặc kép. Ví dụ: trường Favbooks là kiểu dữ liệu mảng chứa nhiều giá trị

> var favBooks = ["Trò chơi vương quyền", "Cuộc đụng độ của các vị vua", "Bão kiếm"]
> db. Loại dữ liệu. chèn({favBooks. favBooks})
WriteResult({ "nInserted". 1 })
>db. Loại dữ liệu. tìm thấy(). xinh()
{
        "_id". ObjectId("5d35e39d956ce18f101ef134"),
        "Sách yêu thích". [
                "Trò chơi vương quyền",
              "Cuộc đụng độ của các vị vua",
              "Bão kiếm"        ]
}
>

JavaScript

Để lưu trữ mã JavaScript không có phạm vi, kiểu dữ liệu JavaScript được sử dụng

> db. Loại dữ liệu. chèn ({JSCode. "function(){x=2+2}"})
WriteResult({ "nInserted". 1 })
> db. Loại dữ liệu. tìm thấy(). xinh()
{
        "_id". ObjectId("5d35e3df956ce18f101ef135"),
        "JSCode". "function(){x=2+2}"
}
>

Một chuỗi các ký tự được sử dụng để mô tả ngày và thời gian khi một sự kiện xảy ra được gọi là Dấu thời gian. Kiểu dữ liệu dấu thời gian lưu trữ các ký tự như vậy. Dấu thời gian mới () được sử dụng để tạo dấu thời gian

> var timestamp = new Timestamp()
> db. Loại dữ liệu. chèn ({dấu thời gian. dấu thời gian})
WriteResult({ "nInserted". 1 })
>db. Loại dữ liệu. tìm thấy(). xinh()
{
        "_id". ObjectId("5d35e44b956ce18f101ef136"),
        "dấu thời gian". Dấu thời gian(1563812939, 1)
}
>

Biểu hiện thông thường

Kiểu dữ liệu này lưu trữ biểu thức chính quy. Nó tương tự như biểu thức chính quy của JavaScript

> var regex = new RegExp("%mongodb%")
> db. Loại dữ liệu. chèn ({thông thường. regex})
WriteResult({ "nInserted". 1 })
>db. Loại dữ liệu. tìm thấy(). xinh()
{ "_id". ObjectId("5d35e49c956ce18f101ef137"), "thông thường". /%mongodb%/ }
>

Vô giá trị

Các giá trị null cũng có thể được lưu trữ trong MongoDB. Kiểu dữ liệu null được sử dụng cho việc này

> db. Loại dữ liệu. chèn ({giá trị. null})
WriteResult({ "nInserted". 1 })
> db. Loại dữ liệu. tìm thấy(). xinh()
{ "_id". ObjectId("5d35e4d2956ce18f101ef138"), "giá trị". null }
>

Không xác định

Các giá trị không xác định được lưu trữ trong MongoDB bằng loại dữ liệu này. Nhưng loại dữ liệu này không được dùng nữa

> db. Loại dữ liệu. chèn ({giá trị. undefined})
WriteResult({ "nInserted". 1 })
> db. Loại dữ liệu. tìm thấy(). xinh()
{ "_id". ObjectId("5d35e4f6956ce18f101ef139"), "giá trị". không xác định }
>

ID đối tượng

Quan sát tất cả các ví dụ trên. Có một tên trường _id. Nó được tạo tự động mọi lúc khi một tài liệu được tạo. Mọi tài liệu được tạo trong MongoDB đều có tên trường id mặc định là _id. Nó chứa một giá trị duy nhất cho mọi tài liệu

Phần kết luận

Đây là những kiểu dữ liệu chính được sử dụng trong MongoDB. Ngoài những loại này, còn có một số loại dữ liệu khác như khóa tối thiểu so sánh với phần tử BSON nhỏ nhất, khóa tối đa so sánh với phần tử BSON cao nhất, Javascript có phạm vi, số nguyên 32 bit và số nguyên 64 bit. Các kiểu dữ liệu đóng một phần quan trọng trong MongoDB. BSON hỗ trợ nhiều loại dữ liệu hơn và những loại dữ liệu này rất hữu ích khi tạo tài liệu MongoDB

Ba loại dữ liệu trong một bộ sưu tập là gì?

IBM® Informix® hỗ trợ ba loại bộ sưu tập tích hợp sẵn. DANH SÁCH, TẬP HỢP và ĐA SỐ .

Các kiểu dữ liệu trong MongoDB là gì?

Sau đây là một số kiểu dữ liệu thường được sử dụng nhất trong MongoDB. .
Chuỗi. Một trong những kiểu dữ liệu cơ bản và được sử dụng rộng rãi nhất là chuỗi. .
số nguyên. Các giá trị số được lưu trữ bằng cách sử dụng kiểu dữ liệu số nguyên. .
Gấp đôi. .
Boolean. .
Mảng. .
Vật. .
Ngày tháng. .
dấu thời gian

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.