MySQL và MongoDB là hai hệ thống quản lý cơ sở dữ liệu phổ biến được sử dụng rộng rãi hiện nay, đều có khả năng mang lại hiệu năng và khả năng quản trị tốt. Tuy nhiên mỗi hệ thống sẽ có những đặc điểm khác nhau và phụ thuộc vào trường hợp bài toán thực tế để sử dụng một cách hiệu quả. Để xác định xem dự án sắp tới của bạn cần sử dụng hệ thống nào thì trong bài viết này chúng ta cùng so sánh giữa MySQL và MongoDB nhé. MySQL là gì? MySQL là một hệ thống quản trị cơ sở dữ liệu (CSDL) quan hệ mã nguồn mở (RDBMS) đầy đủ tính năng thuộc sở hữu của Oracle. Dữ liệu trong MySQL được lưu trữ dưới dạng các bảng và sử dụng ngôn ngữ truy vấn có cấu trúc (SQL) để thực hiện việc truy cập đến CSDL. MySQL được sử dụng cho việc lưu trữ các thông tin trên trang Web, tương thích vớ [...]
Read more →Bài viết được sự cho phép của tác giả Sơn Dương Phần tiếp theo của khóa học Lập trình Node.js cơ bản, mình sẽ hướng dẫn các bạn học cách kết hợp Nodejs với cơ sở dữ liệu, nổi bật nhất là MongoDB. Để các bạn dễ hình dung, chúng ta sẽ cùng nhau tạo RESTful API đơn giản bằng Nodejs + MongoDB. Khi chúng ta xây dựng ứng dụng Web hay các ứng dụng phía server, việc tạo RESTful API để tương tác với client trở lên vô cùng phổ biến. Ở bài viết này, mình sẽ tạo RESTful API hỗ trợ đủ 4 actions: CRUD ( Create – Read – Update – Delete). OK, sau khi môi trường lập trình đã sẵn sàng, chúng ta bắt tay vào tạo RESTful API thôi! #Tạo RESTful API Tạo RESTful API là một kiểu thiết kế ứng dụng trong đó quy định định dạng của địa chỉ URL và phương thức HTTP sử dụng để quản lý tài nguyên trên server. Tài nguyên trên Server trong bà [...]
Read more →Bài viết được sự cho phép của tác giả Trần Hữu Cương Monstache là gì? Monstache là một công cụ, phần mềm thực hiện đồng bộ dữ liệu từ MongoDB sang Elasticsearch. Monstache khá giống với Transporter tuy nhiên nó thực hiện đồng bộ dữ liệu một cách realtime, tức là khi có bất kỳ thay đổi dữ liệu nào trên MongoDB (thêm/sửa/xóa) nó sẽ tự động cập nhật tới Elasticsearch. Việc sử dụng Monstache được áp dụng khi bạn muốn kết hợp MongoDB với Elasticsearch. Ví dụ bạn dùng MongoDB để lưu dữ liệu nhưng khi thực hiện query thì query trên Elasticsearch vì Elasticsearch hỗ trợ search tốt hơn MongDB ở nhiều trường hợp khác nhau. Cài đặt Monstache Yêu cầu đã cài đặt MongoDB và Elasticsearch. Vì Monstache được viết bằng ngôn ngữ lập trình Golang nên cần phải cài Golang nữa nhé. Ở ví dụ này mình sẽ cài đặt trên Ubuntu 16.04 (Các bạn có thể cài trên windows cũng được nhé) Lưu ý: phải bật chứ [...]
Read more →Bài viết được sự cho phép của tác giả Trần Hữu Cương Trong bài này mình sẽ làm ví dụ chuyển data từ MongoDB sang Elasticsearch bằng Transport. 1. Transporter là gì? Cài đặt transporter trên ubuntu Transporter là một phần mềm mã nguồn mở để di chuyển / đồng bộ dữ liệu trên các kho dữ liệu khác nhau. Các kho dữ liệu được đồng bộ ở đây có thể là database, files… Dữ liệu được đọc từ kho dữ liệu nguồn (source) sau đó được chỉnh sửa, tách lọc… (transformer) rồi chuyển tới kho dữ liệu đích (sink) thông qua pipeline do bạn định nghĩa. [irp posts="41334" name="Truy vấn dữ liệu MongoDB"] Cài đặt transport trên ubuntu Download transporter: wget https://github.com/compose/transporter/releases/download/v0.5.2/transporter-0.5.2-linux-amd64 (Download các phiên bản khác tại đây) Chuyển các file vừa tải về vào folder /usr/local/bin/transporter hoặc folder nào đó bạn thích. sudo mv transporter-*-linux-amd64 /usr/local/bin/transporter Run transporter chmod +x /usr/local/bin/transporter Kiểm tra transport sau khi cài đặt bằng lệnh transporter Tham khảo việc làm MongoDB [...]
Read more →Bài viết được sự cho phép của smartjob.vn Hệ quản trị CSDL MongoDB lưu trữ dữ liệu theo cấu trúc phân cấp: database > collection > document > field:value 1. Cặp field:value, có 4 ví dụ minh họa: fullname: "Hoàng Thị Hồng Nhung" birth_year: "1990" email: "nhunghth@smartJob.vn" group: ["van_phong", "nhan_su"] [irp posts="15804" name="MongoDB là gì? Cơ sở dữ liệu phi quan hệ"] [irp posts="5789" name="MongoDB là gì? Định nghĩa đầy đủ và chi tiết nhất về MongoDB"] Xem thêm các việc làm MongoDB lương cao trên TopDev 2. document tuân thủ định dạng BSON (gần giống JSON), một document gồm một hay nhiều cặp field:value như đã trình bày ở trên. Chúng ta bắt đầu các thao tác với dữ liệu: Gõ Windows + R, gọi tiện ích Run. Gõ cmd, gọi tiện ích dòng lệnh (command line). Cần 2 cửa sổ cmd, một để khởi chạy MongoDB bằng lệnh mongod một cửa sổ cmd khác để khởi chạy MongoDB client bằng lệnh mongo CSDL test mặc định được gọi ra (sau khi cài đặt MongoDB thì đã có sẵn CSDL này). Mẹ [...]
Read more →Bài viết được sự cho phép của smartjob.vn Trong phần này, SmartJob sẽ giới thiệu đến bạn nhiều cú pháp truy vấn khác nhau, theo một hay nhiều điều kiện. [irp posts="34107" name="Kiểm thử qui hồi – Cơn ác mộng của kỹ sư kiểm thử"] [irp posts="15804" name="MongoDB là gì? Cơ sở dữ liệu phi quan hệ"] Xem thêm các việc làm MongoDB lương cao trên TopDev CHUẨN BỊ DỮ LIỆU Làm việc với MongoDB, thông thường là làm việc với dữ liệu lớn, do đó cần chuẩn bị cơ sở dữ liệu có kích thước tương đối lớn để sát với thực tế sử dụng. Tải về từ server SmartJob 2 cơ sở dữ liệu mẫu, bấm vào để download – zips: Cơ sở dữ liệu về mã số bưu cục tại Mỹ (file download 567 KB, sau giải nén 3,03 MB, dữ liệu thật, hoàn toàn sát với thực tế). – dataset: Cơ sở dữ liệu thông tin về quán ăn, nhà hàng (file donwload 1,5 MB, sau giải nén 11,6 MB)Sau khi download về, bạn giả [...]
Read more →Bài viết được sự cho phép của smartjob.vn MongoDB hỗ trợ rất nhiều Driver cho các ngôn ngữ lập trình khác nhau. Trong bài viết này, SmartJob trình bày về việc kết nối, truy vấn từ PHP. Máy tính sử dụng: Windows 10, 64 bit, sử dụng bộ tích hợp XAMPP. Cài đặt MongoDB sử dụng MEAN stack (bạn xem các bài viết trước đã hướng dẫn cách cài đặt). Xem thêm việc làm mongoBD tại các công ty hàng đầu trên TopDev Bước 1. Tải về tập tin mở rộng dll tại đường link: http://windows.php.net/downloads/pecl/releases/mongodb/1.1.4/php_mongodb-1.1.4-7.0-ts-vc14-x86.zip Bước 2. Giải nén. Copy file php_mongodb.dll vào thư mục ext, ví dụ trên máy của tác giả là: C:\xampp\php\ext Bước 3. Tìm file php.ini , ví dụ, trên máy tác giả là: C:\xampp\php\php.ini . Chèn vào cuối tập tin này: extension=php_mongodb.dll Bước 4. Giả sử có thư mục: C:\xampp\htdocs\vy\mongo-php Sử dụng cmd: Gõ lệnh: composer require "mongodb/mongodb=^1.0.0" để [...]
Read more →Bài viết được sự cho phép của smartjob.vn Mục đích: Kết nối node js với cơ sở dữ liệu mongodb. Ở phần này hướng dẫn một số cách kết nối với cơ sở dữ liệu Mongodb và các truy vấn Mongodb. [irp posts="15804" name="MongoDB là gì? Cơ sở dữ liệu phi quan hệ"] [irp posts="11034" name="Cách tạo một Docker đơn giản cho Node.JS"] Các bạn xem qua ở phần trước đã có hướng dẫn cài đặt Node.js trước khi tới phần này.Hướng dẫn nhanh phần cài đặt Mongodb. Hướng dẫn cài đặt Mongo db phiên bản mới nhất và tool Robomongo quản lý (nó giống các tool quản lý mysql như Naviacat ) Cách cài đặt riêng từng gói .Truy cập trang chủ, download bản cài đặt: https://www.mongodb.org/downloads#production Lưu ý: Bạn nên sử dụng hệ điều hành 64 bit, không khuyến khích sử dụng hệ điều hành 32 bit Gói cài đặt điển hình (như ảnh chụp màn hình) là mongodb-win32-x86_64-3.2.3-signed.msi có dung [...]
Read more →Bài viết được sự cho phép của tác giả Nguyễn Hữu Đồng Như các bạn đã biết, mongodb là một cơ sở dữ liệu không có quan hệ rất nổi tiếng (NoSQL). Thay vì việc sử dung các bảng có các thuộc tính cố định, mongodb lưu trữ dữ liệu dưới dạng document, dạng key-value, mongodb cũng hỗ trợ scale ngang khi prod lớn lên. Trong bài này mình sẽ hướng dẫn các bạn setup cluster theo phong cách mi ăn liền. [irp posts="31480" name="Thao tác với MongoDB trong các ứng dụng Java"] [irp posts="32990" name="Xây dựng cụm cơ sở dữ liệu bằng MongoDB ( Building Database Clusters with MongoDB )"] Trước khi bắt đầu các bạn hãy nhìn qua hình dưới đây là cách mà mongo cluster hoạt động Nhìn vào hình trên cluster gồm 3 phần chính. shard: Mỗi shard chứa đựng một tập nhỏ các data đã sharded, từ phiên bản 3.6 trở lên, shards phải được cấu hình chạy replicaset nếu muốn trở thành một phần của [...]
Read more →Bài viết được sự cho phép của tác giả Nguyễn Hữu Khanh MongoDB là một NoSQL database, cho phép chúng ta có thể lưu trữ những kiểu dữ liệu phức tạp, không có cấu trúc nhất định. Trong bài viết này, mình sẽ hướng dẫn các bạn các bước cơ bản để làm việc với MongoDB trong các ứng dụng Java các bạn nhé! [irp posts="15804" name="MongoDB là gì? Cơ sở dữ liệu phi quan hệ"] [irp posts="5789" name="MongoDB là gì? Định nghĩa đầy đủ và chi tiết nhất về MongoDB"] Đầu tiên, mình sẽ tạo mới một Maven project để làm ví dụ: [caption id="attachment_31504" align="alignnone" width="696"] Maven project[/caption] Tương tự như các hệ thống database khác, để làm việc với Java, chúng ta cần khai báo để sử dụng Driver của MongoDB trong ứng dụng của mình. <dependency> <groupId>org.mongodb</groupId> <artifactId>mongo-java-driver</artifactId> <version>3.7.0</version> </dependency> OK, bắt đầu thôi các bạn. Để kết nối tới MongoDB, chúng ta sẽ [...]
Read more →Bài viết này mình sẽ giúp các bạn có cái nhìn tổng quan về MongoDB. Chúng ta không lạ gì với cơ sở dữ liệu quan hệ, còn với cơ sở dữ liệu phi quan hệ thì sao? MEAN stack (MongoDB, Express, AngularJS, NodeJS) đang dần thay thế cho LAMP stack (Linux, Apache, MySQL, PHP/Python). Để tìm hiểu về MongoDB thì đầu tiên chúng ta sẽ cùng tìm hiểu xem NoSql là gì nhé 1. NoSql Đầu tiên về cơ sở dữ liệu phi quan hệ chúng ta cùng tìm hiểu về NoSql nhé, vậy NoSql là gì?. NoSQL là 1 dạng CSDL mã nguồn mở và được viết tắt bởi: None-Relational SQL hay có nơi thường gọi là Not-Only SQL. NoSQL được phát triển trên Javascript Framework với kiểu dữ liệu là JSON và dạng dữ liệu theo kiểu key và value. NoSQL ra đời như là 1 mảnh vá cho những khuyết điểm và thiếu xót cũng như hạn chế của mô hình dữ liệu quan hệ RDBMS (Relational Database Management System - Hệ quản trị cơ sở dữ liệu quan hệ) về tốc độ, tính năng, [...]
Read more →1. Video demo ứng dụng mà các bạn sẽ làm được sau khóa học. Mình tóm tắt lại sơ sơ những tính năng của ứng dụng nhé (trong video cũng đã mô tả kỹ rồi): Đăng ký đăng nhập đăng xuất tài khoản Local, lưu trực tiếp email và băm mật khẩu của người dùng. Gửi E-mail xác nhận kích hoạt tài khoản. Đăng ký đăng nhập đăng xuất bằng 2 kiểu tài khoản mạng xã hội Facebook & Google. Cập nhật các thông tin của người dùng như ảnh đại diện, tên hiển thị, số điện thoại…vv… Tìm kiếm người dùng để thêm bạn bè. Quản lý danh sách bạn bè, thêm, sửa, xóa, đếm số lượng bạn bè, gửi lời mời kết bạn, hủy yêu cầu, xác nhận bạn bè…vv… Bắn các thông báo real-time thời gian thực khi có thông báo đến, ví dụ khi có ai gửi lời mời kết bạn đến (tươ [...]
Read more →MongoDB là gì? MongoDB là gì? MongoDB là một database hướng tài liệu (document), một dạng NoSQL database. Vì thế, MongoDB sẽ tránh cấu trúc table-based của relational database để thích ứng với các tài liệu như JSON có một schema rất linh hoạt gọi là BSON. MongoDB sử dụng lưu trữ dữ liệu dưới dạng Document JSON nên mỗi một collection sẽ các các kích cỡ và các document khác nhau. Các dữ liệu được lưu trữ trong document kiểu JSON nên truy vấn sẽ rất nhanh. [irp posts="10304" name="Hiểu rõ về JSON là gì? Cách lấy dữ liệu từ JSON"] Định nghĩa thêm về MongoDB MongoDB lần đầu ra đời bởi MongoDB Inc., tại thời điểm đó là thế hệ 10, vào tháng Mười năm 2007, nó là một phần của sản phẩm PaaS (Platform as a Service) tương tự như Windows Azure và Google App Engine. Sau đó nó đã được chuyển thành nguồn mở từ năm 2009. MongoDB đã trở thành một trong những NoSQL database nổi trội nhất bấy giờ, được dùng làm backend cho rất nhiều [...]
Read more →