0001494 search engine powered by mongodb 1

Giới thiệu MongoDB Compass và AdminMongo

Tình hình là đang làm một cái mạng xã hội mini về thú cưng mà đang dùng cơ sở dữ liệu là MongoDB nên gặp khó khăn trong việc quản lý cơ sỏ dữ liệu thông qua dòng lệnh nên đành lên google kiếm thì thấy có em này adminMongo khá là ngon.

Tất nhiên bạn cũng có thể dùng MongoDB Compass thằng này cũng khá OK, vì vậy trong bài viết này tôi sẽ hướng dẫn bạn dùng hai cái và ưu điểm của từng cái

AdminMongo là gì

Theo như từ trang Github thì nó là một công cụ dùng để quản lý hệ cơ sở dữ liệu MongoDB thông qua giao diện Web nhưng nó cũng đồng thời hỗ trợ thông qua app.

Cài đặt

Chúng ta cần phải có Nodejs trước khi cài đặt nó, để cài đặt NodeJs thì bạn chỉ cần lên trang chủ nó thôi, trong bài viết này tôi sẽ hướng dẫn các bạn cài đặt thông qua docker

Tại sao lại là Docker thì lý do đơn giản thôi, ngày nay hầu hết các ứng dụng NodeJS là dùng tech stack Docker hay Vagrant để cấu hình môi trường phát triển, lý do khác nữa là tôi muốn cái desktop tôi là clean không phải có các thư viện Nodejs gì cả.

Nếu bạn nào chưa biết Docker là gì, thì hãy xem qua khóa học Docker căn bản tất nhiên nó là miễn phí.

Ok, mọi thứ đã rõ bạn cần tải nó về từ github thông qua lệnh sau:

[code lang=text]
git clone [email protected]:mrvautin/adminMongo.git

[/code]

Bản thân tác giả này đã cung cấp cho bạn một tập tin Dokcerfile do đó bạn chỉ cần rebuild nó lại thôi, chỉ cần gõ lệnh sau:

[code lang=text]
docker build -t gsviec/adminmongo .

[/code]

sau khi chạy lệnh đó bạn sẽ có kết quả như sau:

[code lang=text]
$ docker build -t gsviec/adminmongo .
Sending build context to Docker daemon 11.18 MB
Step 1/5 : FROM node:latest
latest: Pulling from library/node
10a267c67f42: Pull complete
fb5937da9414: Pull complete
9021b2326a1e: Pull complete
dbed9b09434e: Pull complete
74bb2fc384c6: Pull complete
1df5aff49349: Pull complete
671d0d9027cc: Pull complete
1b3b3c9b2d4f: Pull complete
Digest: sha256:97fbb8f75f24e288fb795f7c3d247d6ba9c91a16c775ab5465eabb3d10390564
Status: Downloaded newer image for node:latest
—> f1a3ed02f2db
Step 2/5 : COPY . /app/user
—> 4b471a070942
Removing intermediate container 4e6c33d52205
Step 3/5 : WORKDIR /app/user
—> 550a10f9e03a
Removing intermediate container 0d01580e28f3
Step 4/5 : RUN npm install
—> Running in 2af0fb9d1cd6
npm info it worked if it ends with ok
npm info using [email protected]
npm info using [email protected]
npm info attempt registry request try #1 at 10:33:36 AM
npm http request GET https://registry.npmjs.org/async
npm info attempt registry request try #1 at 10:33:36 AM
npm http request GET https://registry.npmjs.org/body-parser
npm info attempt registry request try #1 at 10:33:36 AM
npm http request GET https://registry.npmjs.org/bootstrap
npm info attempt registry request try #1 at 10:33:36 AM
npm http request GET https://registry.npmjs.org/config
npm info attempt registry request try #1 at 10:33:36 AM
npm http request GET https://registry.npmjs.org/cookie-parser
npm info attempt registry request try #1 at 10:33:36 AM
npm http request GET https://registry.npmjs.org/express
npm info attempt registry request try #1 at 10:33:36 AM
npm http request GET https://registry.npmjs.org/express-handlebars
npm info attempt registry request try #1 at 10:33:36 AM
npm http request GET https://registry.npmjs.org/express-session
npm info attempt registry request try #1 at 10:33:36 AM
npm http request GET https://registry.npmjs.org/font-awesome

[/code]

Sau đó bạn đi chế ly cafe:) để uống, nếu mọi thứ thành công thì bạn sẽ thấy một cái images adminmongo

[code lang=text]
docker images | grep adminmongo

[/code]

Cách dùng

Để sử dụng cái image trên thì bạn phải có một cơ sở dữ kiệu MongoDB nếu chưa có bạn có thể cài đặt thông qua lệhh sau:

[code lang=text]
docker pull mongo

[/code]

Sau đó bạn định nghĩa một tập tin docker-compose.yml như sau

[php]
version: ‘2’

services:
mongo:
restart: ‘no’
image: mongo:3.0
volumes:
– ./docker/mongo:/data/db
#command: "–setParameter failIndexKeyTooLong=false"
ports:
– "27017:27017"
adminmongo:
restart: ‘no’
image: gsviec/adminmongo
depends_on:
– mongo
ports:
– "8080:1234"
[/php]

sau đó bạn chỉ cần chạy docker-compose up thế là xong, bạn cũng có thể xác nhận nó thông qua lệnh docker ps nếu bạn thấy kết quả như hình bên dưới có nghĩa là bạn đã chạy thành công:

Screenshot at May 16 15 11 18 1

sau đó bạn truy cập qua đường dẫn http://localhost:8080 thì sẽ thấy cái hình bên dưới

Screenshot at May 16 15 14 33 1

để kết nối vào mongodb thì bạn dùng cú pháp sau:

[code lang=text]
mongodb://<user>:<password>@127.0.0.1:<port>/<db>

[/code]

nếu bạn dùng docker thì mặc định ở trên nó sẽ có dạng như sau:

[code lang=text]
mongodb://mongo:27017/dev

[/code]

Screenshot at May 16 15 24 08 1

sau khi bạn thêm vào chỉ việc nhấn “Add connect” như hình bên dưới nó sẽ báo thành công sau đó bạn chỉ việc nhấn nút mũi tên màu đỏ ở trên để vào trang quản lý. Trong trang quản lý bạn có thể thêm hoặc xóa các collection hay các data trong đó tuỳ bạn

Cập nhật một document trong collection của mongodb

Screenshot at May 16 15 31 27 1

Xem chi tiết một collection trong mongodb

Screenshot at May 16 15 31 49 1

Còn rất nhiều những tính năng hay bạn có thể khám phá thêm, tuỳ thuộc vào nhu cầu của bạn, kế đến mình giới thiệu GUI do thằng MongoDB cung cấp

MongoDB Compass

Theo như từ trang chủ thì nó là một công cụ dùng để quản lý hệ cơ sở dữ liệu MongoDB thông qua desktop, nếu bạn nào dùng MySQL workben sẽ hiểu.

Cài đặt nó khá là đơn giản chỉ cần vào MongoDB Compass chọn phiên bản cho HĐH của bạn, trong trường hợp của tôi là OSX do đó tôi chọn phiên bản là OSX, sau khi cài đặt xong bạn sẽ có giao diện thế này

Screenshot at May 16 15 37 18 1

các tham số bên tay trái tôi nghĩ khá là dễ hiểu, chỉ cần nhập vào sau đó kết nối vào bạn sẽ có dạng như sau:

Screenshot at May 16 15 39 09 1

Để xem chi tiết của một database trong MongoDb bạn chỉ việc click vào nó thôi

Screenshot at May 16 15 39 46 1

Để xem chi tiết một collection trong Database chỉ việc click vào em nó thôi

Screenshot at May 16 15 40 56 1

Để edit một documents thì chọn phần documents sau đó double click vào field mà bạn muốn update

Screenshot at May 16 15 41 49 1

Xem query performance

Screenshot at May 16 16 43 40 1

So sánh

Khi nào thì bạn nên dùng thằng AdminMongo và khi nào thì dùng MongoDB Compass, theo ý kiến của tôi thì khi bạn muốn connect vào database mongo thông qua giao thức SSH thì chỉ có thằng MongoDB Compass hỗ trợ lúc này bạn nên dùng nó.

Còn nếu bạn muốn truy cập nhanh thông qua giao diện web thì cứ việc cài nó lên server thế là xong cái này phù hợp cho các bạn nào muốn truy cập khẩn cấp mà không có đem theo laptop, có thể truy cập qua mobile:)

Nếu bạn muốn xem Visualize, geospatial data, query performance thì chỉ có thằng MongoDB Compass hỗ trợ thôi, do đó thì có vẻ em MongoDB Compass có nhiều tính năng hơn!!

Giao diện thì 2 em này mình thấy đều ngon cả, nên bạn dùng cả 2 cũng chả sao!!!

MongoDB Compass có một điểm dễ đó là bộ tìm kiếm hay filter cho collection cực kỳ kém thân thiện sp với adminMongo

Kết luận

Nếu bạn nào đã quen với PHPMYADMIN thần thành bên MySQL thì không thể bỏ qua hai em này trong việc tương tác dữ liệu với MongoDB, anh em có dùng thằng nào hay thì hãy chia sẽ với gsviec!!

Scroll to Top