Bắt đầu với MongoDB cho người mới bắt đầu

Tìm hiểu MongoDB, hướng dẫn cài đặt và thao tác cơ bản là gì.


MongoDB NoQuery đang là xu hướng hơn bao giờ hết. Bạn có hiểu biết cần thiết về nó không?

Đừng lo lắng nếu không, những điều sau đây sẽ giúp bạn.

Giới thiệu

Với việc trang web thay đổi mô hình theo hướng nội dung động, nhu cầu về cơ sở dữ liệu No-SQL tăng cao. Điều này đã dẫn đến nhiều cơ sở dữ liệu No-SQL như MongoDB.

Được phân loại là cơ sở dữ liệu No-SQL, MongoDB là cơ sở dữ liệu dựa trên tài liệu lưu trữ dữ liệu dưới dạng tài liệu JSON với tự động được xác định cho mọi tài liệu.

Cơ sở dữ liệu No-SQL là cơ sở dữ liệu trong đó cấu trúc bảng không cố định, không giống như cơ sở dữ liệu SQL có cấu trúc. MongoDB lưu trữ dữ liệu dưới dạng chuỗi JSON bất kể số lượng thuộc tính hoặc tên của các thuộc tính trong một cột cụ thể.

Điều này cho phép các nhà phát triển nhanh chóng thực hiện các thay đổi trong các thực thể mà không cần bất kỳ thay đổi nào ở cấp cơ sở dữ liệu.

Cài đặt MongoDB

MongoDB, giống như mọi cơ sở dữ liệu khác, có sẵn trong nhiều biến thể tùy thuộc vào nhu cầu phát triển. Các biến thể đã được liệt kê dưới đây và có thể được sử dụng hoặc tải xuống từ đây liên kết

  • MongoDB Atlas – Cơ sở dữ liệu như một dịch vụ
  • Máy chủ cộng đồng – Miễn phí sử dụng cho cộng đồng các nhà phát triển
  • MongoDB Enterprise Edition – Phiên bản thương mại với các tính năng bổ sung

Mỗi trong số này là hoàn toàn tương thích với mọi hệ điều hành. Để bắt đầu, việc cài đặt máy chủ cộng đồng, tải xuống tệp cài đặt có liên quan theo hệ điều hành của bạn.

Quá trình cài đặt hơi khác nhau đối với mọi hệ điều hành và do đó chúng tôi sẽ trải qua từng cài đặt hệ điều hành riêng biệt.

Cài đặt trong MacOS

Để cài đặt MongoDB trong MacOS. Tải xuống kho lưu trữ .tgz chứa các nhị phân cần thiết trong đó. Khi hủy lưu trữ tệp, bạn sẽ có thể xem một loạt các tệp nhị phân nằm trong thùng rác thư mục.

  • Di chuyển thư mục bin đến vị trí mong muốn
  • Mở terminal và thay đổi thư mục thành thư mục bin được đề cập ở trên
  • Thực hiện lệnh dưới đây để tạo cơ sở dữ liệu tại vị trí mong muốn.

$ ./mongod –dbpath / đường dẫn đến thư mục mong muốn /

Trong lệnh trên, thay thế đường dẫn đến thư mục bằng đường dẫn mong muốn của bạn và máy chủ sẽ được khởi động ngay khi lệnh được thực thi.

Cài đặt trong Windows

Trung tâm tải xuống MongoDB cung cấp một tệp thực thi .msi gói để cài đặt MongoDB vào windows. Việc cài đặt trong windows khá đơn giản và có thể được thực hiện bằng một vài lệnh sau khi cài đặt đã được tải xuống.

  • Thực hiện các lệnh dưới đây để cài đặt MongoDB trong PC / máy chủ Windows.

> cd / setup-thư mục /
> msiexec.exe / q / i .msi ^
LẮP ĐẶT ="C: \ Tệp chương trình \ MongoDB \" ^
QUẢNG CÁO ="MonitorTools, ImportExportTools, OtherTools"

Các lệnh trên sẽ đưa bạn đến thư mục tương ứng và thực hiện cài đặt để cài đặt tại vị trí đã chỉ định. Sau khi cài đặt, bạn cần định cấu hình đường dẫn lưu trữ cơ sở dữ liệu mặc định cho MongoDB. Lệnh dưới đây giúp bạn cấu hình tương tự

> md \ db \ dữ liệu

Lệnh trên tạo một thư mục db / data trong thư mục mà dấu nhắc lệnh đang trỏ đến hiện tại. Trong trường hợp bạn cần cấu hình lại cơ sở dữ liệu một lần nữa, bạn có thể sử dụng mongod.exe với đường dẫn đối số như hình dưới đây:

>"C: \ Tệp chương trình \ MongoDB \ bin \ mongod.exe" –dbpath d: \ guide \ mongodb \ data

Cài đặt trong Linux

Tương tự như các bản tải xuống MacOS, các biến thể MongoDB cho Linux cũng có sẵn ở dạng một bó nhị phân được lưu trữ. Quá trình cài đặt MongoDB khá giống nhau..

  • Di chuyển các nhị phân đến vị trí mong muốn
  • Mở terminal trong thư mục
  • Thực hiện lệnh dưới đây với vị trí DB mong muốn

$ ./mongod –dbpath / đường dẫn đến thư mục mong muốn /

Tạo bộ sưu tập đầu tiên

MongoDB lưu trữ dữ liệu dưới dạng tài liệu JSON. Một nhóm các tài liệu như vậy được gọi chung là một bộ sưu tập trong MongoDB. Do đó, một bộ sưu tập tương tự như một bảng trong cơ sở dữ liệu quan hệ trong khi tài liệu tương tự như một bản ghi.

Để lưu trữ tài liệu, trước tiên chúng ta cần tạo một bộ sưu tập. Điều thú vị về cơ sở dữ liệu NoQuery là không giống như cơ sở dữ liệu SQL, bạn không cần chỉ định tên cột hoặc kiểu dữ liệu trong đó.

Bước đầu tiên để tạo ra một bộ sưu tập là tạo ra một cơ sở dữ liệu. Để tạo cơ sở dữ liệu và kết nối với nó bằng dòng lệnh, hãy thực hiện lệnh dưới đây từ thư mục nhà cài đặt MongoDB.

$ ./bin/mongo hướng dẫn

Lệnh này được sử dụng để bắt đầu kết nối cơ sở dữ liệu và kết nối với cơ sở dữ liệu hướng dẫn đồng thời. Nó sẽ hiển thị một loạt các dòng trong nhật ký để chỉ ra rằng dòng lệnh đã kết nối với cơ sở dữ liệu MongoDB.

Một hình ảnh dòng lệnh mẫu đã được hiển thị bên dưới để cho bạn ý tưởng tốt hơn về cùng một.

  • Để tạo một bộ sưu tập, thực hiện lệnh dưới đây:

$ > db.createCollection (‘FirstCollection’);

Đây là cách một bộ sưu tập trống được tạo ra. Bước tiếp theo là chèn dữ liệu và xử lý một số bản ghi bằng dòng lệnh MongoDB.

Chèn tài liệu vào Bộ sưu tập

Như đã thảo luận ở trên, có thể chèn hầu hết mọi JSON vào mọi bộ sưu tập MongoDB.

Chúng ta hãy bắt đầu với việc chèn tài liệu JSON đầu tiên vào Bộ sưu tập đầu tiên bộ sưu tập được tạo ở trên.

> db.firstCollection.insertOne ({name: ‘Abhishek’, skill: ‘MongoDB’});

Lệnh trên chèn một tài liệu JSON duy nhất vào FirstCollection. Điều tương tự có thể được xác minh bằng cách sử dụng lệnh hiển thị bên dưới:

> db.firstCollection.find ();

Lệnh trên có nhiều cách sử dụng tùy thuộc vào biến thể của hàm find (). Khi không có đối số được chỉ định như trường hợp của lệnh trên, nó sẽ tìm nạp tất cả các tài liệu có sẵn từ bộ sưu tập.

Bạn có thể chèn thêm một bản ghi và thử tương tự. Khi làm như vậy, đầu ra của lệnh trên sẽ tương tự như lệnh được hiển thị bên dưới:

> db.firstCollection.find ();
{ "_Tôi" : ID đối tượng("5b043a32c29a7184535e783a"), "Tên" : "Abhishek", "kỹ năng" : "MongoDB" }
{ "_Tôi" : ID đối tượng("5b05b4f0c29a7184535e783b"), "Tên" : "GeekFlare", "kỹ năng" : "Java, MongoDB, NodeJS" }

Như có thể thấy, có hai hồ sơ có sẵn đang được hiển thị. Hàm find () có thể dễ dàng được sử dụng để lọc các tài liệu dựa trên các tham số cụ thể. Hãy để chúng tôi lọc tài liệu bằng cách sử dụng thuộc tính name.

Quá trình lọc rất đơn giản và có thể hiểu từ lệnh bên dưới:

db.firstCollection.find ({name: ‘Abhishek’});
{ "_Tôi" : ID đối tượng("5b043a32c29a7184535e783a"), "Tên" : "Abhishek", "kỹ năng" : "MongoDB" }

Bộ lọc cũng có thể được sử dụng với nhiều thuộc tính trong JSON. Mặc dù có thể thêm bất kỳ số lượng tham số nào vào truy vấn, nhưng hạn chế của phương pháp này là nó chỉ khớp với giá trị chính xác của các thuộc tính.

Lọc hồ sơ bằng Regex

Để thực thi một tương đương MongoDB của một mệnh đề giống như MySQL, MongoDB sử dụng regex. Regex là một chuỗi các nhân vật tạo thành một mô hình phù hợp. Các chữ regex tương tự như những cái được sử dụng trong Javascript.

Đối với bộ sưu tập hiện tại, chúng tôi sẽ cố gắng tìm nạp dữ liệu bằng cách khớp một mẫu cho thuộc tính kỹ năng. Lệnh dưới đây nhận danh sách những người có kỹ năng MongoDB. Do đó, nó sẽ tìm nạp hai bản ghi vì cả hai đều chứa chuỗi MongoDB.

> db.firstCollection.find ({skill: /.* MongoDB. * /});
{ "_Tôi" : ID đối tượng("5b043a32c29a7184535e783a"), "Tên" : "Abhishek", "kỹ năng" : "MongoDB" }
{ "_Tôi" : ID đối tượng("5b05b4f0c29a7184535e783b"), "Tên" : "GeekFlare", "kỹ năng" : "Java, MongoDB, NodeJS" }
> db.firstCollection.find ({skill: /.* Java. * /});
{ "_Tôi" : ID đối tượng("5b05b4f0c29a7184535e783b"), "Tên" : "GeekFlare", "kỹ năng" : "Java, MongoDB, NodeJS" }

Đoạn mã trên hiển thị kết quả của hai chuỗi khác nhau ở dạng regex. Truy vấn đầu tiên tìm nạp danh sách tài liệu trong đó thuộc tính skill chứa từ khóa MongoDB trong khi truy vấn khác chỉ tìm nạp những người có kỹ năng về Java.

Thử thách tiếp theo trong truy vấn dựa trên các tiêu chí là truy vấn với điều kiện OR hoặc AND.

Các truy vấn phức tạp trong MongoDB

Vì rõ ràng từ các lệnh trên, MongoDB nơi các mệnh đề hoạt động trên JSON. Quá trình kết hợp các điều kiện cũng phụ thuộc vào chính JSON. MongoDB cung cấp các toán tử như $ hoặc, $ và cũng như $ không thực hiện các hoạt động truy vấn có liên quan.

Chúng ta hãy thử lấy danh sách các tài liệu trong đó thuộc tính name chứa Abhishek hoặc kỹ năng chứa Java.

> db.firstCollection.find ({$ hoặc: [{name: ‘Abhishek’}, {skill: /.* Java. * /}]});
{ "_Tôi" : ID đối tượng("5b043a32c29a7184535e783a"), "Tên" : "Abhishek", "kỹ năng" : "MongoDB" }
{ "_Tôi" : ID đối tượng("5b05b4f0c29a7184535e783b"), "Tên" : "Geekflare", "kỹ năng" : "Java, MongoDB, NodeJS" }

Như nó có thể được nhìn thấy, nó lấy cả hai bản ghi. Bạn có thể thử sử dụng thuộc tính name là Geekflare và xem sự thay đổi. Chỉ tài liệu có ba kỹ năng và tên Geekflare sẽ được hiển thị.

Tương tự, có thể sử dụng $ và toán tử với một mảng các điều kiện JSON như được hiển thị ở trên.

Đối với nhóm toán tử tiếp theo, chúng ta sẽ cần tạo thêm một bộ sưu tập và thêm một số bản ghi vào nó bằng các lệnh bên dưới.

> db.createCollection (‘sinh viên’);
{ "đồng ý" : 1}
> db.studentmark.insertMany ([{name: ‘A’, mark: 20}, {name: ‘B’, mark: 25}, {name: ‘C’, mark: 22}, {name: ‘D’, điểm: 30}]);
{
"thừa nhận" : thật,
"chèn" : [
ID đối tượng("5b06e7b5c29a7184535e783c"),
ID đối tượng("5b06e7b5c29a7184535e783d"),
ID đối tượng("5b06e7b5c29a7184535e783e"),
ID đối tượng("5b06e7b5c29a7184535e783f")
]
}

Nhóm toán tử tiếp theo mà chúng ta sẽ sử dụng là toán tử so sánh trong truy vấn. Để so sánh các giá trị sử dụng các tiêu chí như ít hơn hoặc là lớn hơn hoặc là không bằng, chúng tôi sử dụng các toán tử có liên quan trong giá trị mà chúng tôi vượt qua.

Một ví dụ về việc nhận danh sách học sinh có điểm lớn hơn 22 được hiển thị bên dưới.

db.studentmark.find ({mark: {$ gt: 22}});
{ "_Tôi" : ID đối tượng("5b06e7b5c29a7184535e783d"), "Tên" : "B", "điểm" : 25}
{ "_Tôi" : ID đối tượng("5b06e7b5c29a7184535e783f"), "Tên" : "D", "điểm" : 30}

$ Gt ở đây biểu thị lớn hơn trong các tiêu chí. Do đó, các tài liệu có dấu hơn 22 đang được hiển thị. Tương tự, có các toán tử khác có thể được sử dụng. Chúng được liệt kê dưới đây.

Nhà điều hành
Sử dụng
Thí dụ
$ eqKiểm tra xem giá trị có bằng nhau không{điểm: {$ eq: 20}}
$ ltKiểm tra nếu giá trị nhỏ hơn{nhãn hiệu: {$ lt: 20}}
$ gteKiểm tra xem giá trị lớn hơn hoặc bằng{nhãn hiệu: {$ gte: 22}}
$ lteKiểm tra nếu giá trị ít cảm ơn hoặc bằng{nhãn hiệu: {$ lte: 22}}
$ neKiểm tra nếu giá trị không bằng{nhãn hiệu: {$ ne: 22}}
$ trongKiểm tra xem giá trị có bằng một trong hai giá trị từ mảng không{nhãn hiệu: {$ in: [20,22]}}
$ chínKiểm tra xem giá trị không bằng bất kỳ giá trị nào từ mảng{nhãn hiệu: {$ nin: [22,25]}}

GUI cho MongoDB

Trong cuộc thảo luận ở trên, chúng tôi đã sử dụng một dòng lệnh để thực hiện các truy vấn của mình trong MongoDB.

Sử dụng dòng lệnh có thể là một thách thức khi nói đến các truy vấn phức tạp và một loạt dữ liệu lớn hơn. Để giúp xem dữ liệu và thực hiện các truy vấn dễ dàng hơn, MongoDB cung cấp cho bạn một công cụ GUI tuyệt vời có tên là MongoDB La bàn.

La bàn MongoDB có thể dễ dàng tải xuống từ Trang tải về MongoDB. Khi bạn đã tải xuống và cài đặt MongoDB Compass, hãy khởi động ứng dụng và bạn sẽ được chào đón bởi một màn hình tương tự như màn hình hiển thị bên dưới.

MongoDBCompass

Xem xét rằng bạn có máy chủ MongoDB đang hoạt động, nhấp kết nối với các chi tiết mặc định. Bạn nên đăng nhập và hiển thị danh sách các cơ sở dữ liệu có sẵn.

Nhấp vào cơ sở dữ liệu hướng dẫn để xem danh sách các bộ sưu tập trong db hướng dẫn. Như được hiển thị bên dưới, nó hiển thị danh sách các bộ sưu tập có sẵn trong db hướng dẫn.

Khi nhấp vào bộ sưu tập, nó sẽ hiển thị danh sách các tài liệu với các điều khiển cần thiết để lọc các bản ghi bằng JSON cũng như phương tiện để xem các tài liệu ở định dạng JSON hoặc định dạng bảng theo sự thuận tiện của chúng tôi.

GUI cũng làm cho việc thêm một tài liệu đơn giản hơn. Tất cả những gì bạn cần làm là nhấp vào nút Chèn Tài liệu trong màn hình hiển thị bên dưới. Nó mở ra một hộp thoại nhỏ yêu cầu chi tiết tài liệu với id tài liệu được tạo tự động.

MongoDBDocument

GUI đơn giản hóa rất nhiều thao tác có thể khó thực hiện bằng giao diện dòng lệnh MongoDB.

Phần kết luận

Chúng tôi đã nắm bắt được bản chất của NoQuery với nhiều ví dụ và hiểu cách cài đặt, làm thế nào các tài liệu khác so với một bản ghi cơ sở dữ liệu quan hệ thông thường. Bạn cũng có thể giới thiệu này học MongoDB từ đầu khóa học trực tuyến.

Và, nếu bạn là một nhà phát triển, thì bạn có thể quan tâm đến cái này.

THẺ

  • Cơ sở dữ liệu

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map