MongoDB là một cơ sở dữ liệu NoSQL. Trong NoSQL ô dù chúng tôi đặt tất cả các cơ sở dữ liệu không sử dụng ngôn ngữ SQL để truy vấn dữ liệu.
Các đặc điểm chính của MongoDB
MongoDB là một cơ sở dữ liệu rất thân thiện với JavaScript. Nó cho thấy một API JavaScript mà chúng tôi có thể sử dụng để tạo cơ sở dữ liệu và bộ sưu tập các đối tượng (được gọi là tài liệu ).
Đó là schemaless , có nghĩa là bạn không cần xác định trước cấu trúc cho dữ liệu trước khi lưu trữ.
Trong MongoDB, bạn có thể lưu trữ bất kỳ đối tượng nào mà không cần phải lo lắng về các trường cụ thể tạo đối tượng này và cách lưu trữ chúng. Bạn yêu cầu MongoDB lưu trữ đối tượng đó.
Dữ liệu được lưu trữ ở định dạng tương tự như JSON, nhưng được nâng cao hơn để cho phép lưu trữ nhiều hơn chỉ là các kiểu dữ liệu cơ bản.
Cài đặt
Hãy tiếp tục và cài đặt MongoDB. Bạn có thể sử dụng một trong nhiều nhà cung cấp dịch vụ đám mây cung cấp quyền truy cập vào phiên bản MongoDB, nhưng để tìm hiểu, chúng tôi sẽ tự cài đặt phiên bản này.
Tôi sử dụng máy Mac, vì vậy hướng dẫn cài đặt trong hướng dẫn này đề cập đến hệ điều hành đó.
Mở thiết bị đầu cuối và chạy:
brew tap mongodb/brew
brew install mongodb-community
Thế là xong.
Hướng dẫn không quá dài hoặc phức tạp, giả sử bạn biết cách sử dụng thiết bị đầu cuối và cách cài đặt Homebrew.
Việc cài đặt cho chúng tôi biết điều này:
To have launchd start mongodb now and restart at login:
brew services start mongodb-community
Or, if you don't want/need a background service you can just run:
mongod --config /usr/local/etc/mongod.conf
Bạn có thể chọn khởi chạy MongoDB một lần và để nó chạy mãi mãi như một dịch vụ nền trong máy tính của bạn (điều tôi thích hơn) hoặc bạn có thể chạy nó ngay khi cần, bằng cách chạy lệnh sau.
Cấu hình mặc định cho MongoDB là:
systemLog:
destination: file
path: /usr/local/var/log/mongodb/mongo.log
logAppend: true
storage:
dbPath: /usr/local/var/mongodb
net:
bindIp: 127.0.0.1
Nhật ký được lưu trữ trong /usr/local/var/log/mongodb/mongo.log
và cơ sở dữ liệu được lưu trữ trong /usr/local/var/mongodb
.
Theo mặc định, không có kiểm soát truy cập, bất kỳ ai cũng có thể đọc và ghi vào cơ sở dữ liệu.
Vỏ Mongo
Cách tốt nhất để thử nghiệm với MongoDB và bắt đầu tương tác với nó là chạy mongo
chương trình khởi động trình bao MongoDB.
Bây giờ bạn có thể nhập bất kỳ lệnh nào mà Mongo hiểu được.
Tạo cơ sở dữ liệu
Khi bạn bắt đầu, Mongo tạo một cơ sở dữ liệu có tên là test
. Chạy db
trong shell để cho bạn biết tên của cơ sở dữ liệu đang hoạt động
Để thay đổi cơ sở dữ liệu, chỉ cần viết use newname
và newname
cơ sở dữ liệu sẽ được tạo ngay lập tức và trình bao chuyển sang sử dụng cơ sở dữ liệu đó.
Sử dụng show databases
liệt kê các cơ sở dữ liệu có sẵn:
Như bạn thấy, something
cơ sở dữ liệu không được liệt kê, chỉ vì chưa có bộ sưu tập nào trong đó. Hãy tạo một cái.
Bộ sưu tập
Trong MongoDB, một bộ sưu tập tương đương với bảng cơ sở dữ liệu SQL.
Bạn tạo một bộ sưu tập trên cơ sở dữ liệu hiện tại bằng cách sử dụng db.createCollection()
yêu cầu. Đối số đầu tiên là tên cơ sở dữ liệu và bạn có thể chuyển đối tượng tùy chọn làm tham số thứ hai.
Khi bạn làm như vậy, show databases
sẽ liệt kê cơ sở dữ liệu mới và show collections
sẽ liệt kê bộ sưu tập.
Bạn cũng có thể tạo một bộ sưu tập mới bằng cách sử dụng nó làm thuộc tính của db
đối tượng và gọi insert()
để thêm một đối tượng vào bộ sưu tập:
db.dogs.insert({ name: 'Roger' })
Liệt kê các đối tượng trong một bộ sưu tập
Để hiển thị các đối tượng được thêm vào một bộ sưu tập, hãy sử dụng find()
phương pháp:
Như bạn có thể thấy, có một _id
bổ sung tài sản cho bản ghi chúng tôi đã thêm. Điều đó được MongoDB tạo tự động cho chúng tôi.
Bây giờ, hãy thêm nhiều con chó hơn:
db.dogs.insert({ name: 'Buck' })
db.dogs.insert({ name: 'Togo' })
db.dogs.insert({ name: 'Balto' })
Đang gọi db.dogs.find()
sẽ cung cấp cho chúng tôi tất cả các mục nhập, trong khi chúng tôi có thể chuyển một tham số để lọc và truy xuất một mục nhập cụ thể, ví dụ:với db.dogs.find({name: 'Roger'})
:
find()
phương thức trả về một con trỏ mà bạn cần lặp lại.
Có một phương pháp khác rất hữu ích khi bạn biết rằng mình sẽ chỉ nhận được một bản ghi, đó là findOne()
và nó được sử dụng theo cách tương tự. Nếu nhiều bản ghi khớp với một truy vấn, nó sẽ chỉ trả về bản ghi đầu tiên.
Cập nhật bản ghi
Để cập nhật bản ghi, bạn có thể sử dụng update()
phương pháp trên một bộ sưu tập:
Xóa bản ghi
Bạn có thể xóa bản ghi gọi remove()
trên một tập hợp, truyền một đối tượng để giúp xác định nó:
Để xóa tất cả các mục nhập khỏi một bộ sưu tập, hãy chuyển một đối tượng trống:
db.dogs.remove({})