Import dữ liệu vào mongodb

Đầu tiên phải có dữ liệu mẫu đã chứ nhỉ 😀 mình sẽ tạo một database ví dụ để thực hiện việc export và import trong bài viết hôm nay.export và import trong bài viết hôm nay.

Mình sử dụng MongoDB Compass để tạo dữ liệu cho nhanh, bạn nào chưa biết nó là gì thì tham khảo phần 2 trong bài viết này nhé:MongoDB Compass để tạo dữ liệu cho nhanh, bạn nào chưa biết nó là gì thì tham khảo phần 2 trong bài viết này nhé:

“Cài đặt MongoDB và MongoDB Compass trên Ubuntu – Linux Mint”

  • Mình sẽ tạo database tên là import-export-trungquandev cùng với một collection là users.import-export-trungquandev cùng với một collection là users.

  • Chọn vào collection users để tạo bản ghi mới:users để tạo bản ghi mới:

Import dữ liệu vào mongodb
Import dữ liệu vào mongodb

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ải nén ra.

Import collection có tên zips vào vào CSDL test (test là CSDL có sẵn sau khi cài đặt MongoDB)

mongoimport --db test --collection zips --drop --file "C:\zips.json"

Khi sử dụng tiện ích RockMongo để import dữ liệu, thời gian import rất lâu và dễ bị lỗi. Việc sử dụng câu lệnh là rất tốt, nhanh, tránh được lỗi.

Trong Hệ quản trị Cơ sở dữ liệu MongoDB sẽ có nhiều CSDL, do đó bạn cần khai báo sẽ sử dụng CSDL nào. Gõ lệnh

use test;

Để sử dụng CSDL test

Gõ lệnh dưới đây để xem nội dung collection “zips” của Cơ sở dữ liệu “zips”. (Đây chính là câu lệnh hiển thị toàn bộ nội dung của collection zips)

db.zips.find().pretty();

Do lượng dữ liệu lớn, cửa sổ dòng lệnh không thể liệt kê hết. Để xem thêm trang sau, bạn gõ

it

rồi nhấn phím Enter.

Công tác chuẩn bị dữ liệu đã sẵn sàng để bạn tạo các truy vấn từ đơn giản đến phức tạp.

TRUY VẤN THEO ĐIỀU KIỆN

Tìm bưu cục có id = 01002, do tìm theo id, nên sẽ trả về không quá 1 document

db.zips.find(

     {"_id": "01002"}

);

Để tìm document chứa dữ liệu về bưu cục vill

db.zips.find(

     {"city": "GILBERTVILLE"}

);

Các bạn tham khảo mã nguồn sử dụng Spring Data Mongo để C.R.U.D. (Create – Read – Update – Delete) dữ liệu MongoDB tại: https://github.com/SmartJobVN/MongoDB_SpringDataMongo