openplanning

Import và Export cơ sở dữ liệu MongoDB

Xem thêm các chuyên mục:

Nhóm phát triển của chúng tôi vừa ra mắt website langlearning.net học tiếng Anh, Nga, Đức, Pháp, Việt, Trung, Hàn, Nhật, ... miễn phí cho tất cả mọi người.
Là một website được viết trên công nghệ web Flutter vì vậy hỗ trợ rất tốt cho người học, kể cả những người học khó tính nhất.
Hiện tại website đang tiếp tục được cập nhập nội dung cho phong phú và đầy đủ hơn. Mong các bạn nghé thăm và ủng hộ website mới của chúng tôi.
Hãy theo dõi chúng tôi trên Fanpage để nhận được thông báo mỗi khi có bài viết mới. Facebook

1- Tổng quan

MongoDB cung cấp cho bạn 2 cách để import/export cơ sở dữ liệu:
  1. mongoexport/mongoimport
  2. mongodump/mongostore
mongoexport: Sử dụng để export (xuất khẩu) dữ liệu từ một Collection ra một file (json, csv,..)

mongoimport: Sử dụng để import (nhập khẩu) dữ liệu vào một Collection từ một file (json, csv,..)
Collection là khái niệm của MongoDB, nó tương đương với khái niệm Table trong cơ sở dữ liệu quan hệ (Oracle, SQL Server, MySQL,..).
mongodump: Sử dụng để export (xuất khẩu) toàn bộ dữ liệu của một database ra các file (Để vào trong một thư mục), bao gồm một số file (bson, json)

mongostore: Sử dụng để import (nhập khẩu) dữ liệu vào một database từ thư mục dump (Sản phẩm của mongodump nói trên)

2- Import/Export Collection

2.1- mongoexport


# Export to json
mongoexport -d database_name - c collection_name -o outfile.json


# Export to file csv
mongoexport --csv -o /tmp/people.csv -d school -c people -f firstName,lastName,telephone,email

2.1.1- mongoexport ra file json

Trong trường hợp export đơn giản, bạn không cần sử dụng nhiều option (tùy chọn) trong câu lệnh mongoexport:

# Export ra file json
# Đây là cú pháp đơn giản nhất.
# Mặc định file đầu ra là json vì vậy không cần chỉ rõ kiểu file đầu ra

mongoexport -d database_name -c collection_name -o outfile.json
Ví dụ export một collection ra file JSON.

cd C:\DevPrograms\MongoDB\bin
Export collection Department trong cơ sở dữ liệu myfirstdb ra file jsonC:/test/department.json.

Chú ý: MongoDB phân biệt chữ hoa chữ thường vì vậy hãy chú ý khi đặt tên collection.Tốt nhất bạn nên thống nhất cách đặt tên collection với chữ cái đầu tiên viết hoa. Ví dụ:

  • Department
  • Employee
  • Inventory_Item
  • Product_Category


mongoexport -d myfirstdb -c Department -o C:/test/department.json
 
Kết quả:
Xem file mới được export ra:

2.1.2- mongoexport ra file csv


# Export ra file csv
# Đây là cú pháp đơn giản nhất:
# Với trường hợp file csv bạn phải cung cấp cả danh sách các cột của Collection (Bắt buộc).
# Danh sách các cột cách nhau dấu phẩy và không có khoảng trắng.
# Phải khai báo rõ kiểu file đầu ra (--csv)

mongoexport -d database_name -c collection_name -f column_1,column_2,column_3 --csv -o outfile.csv

mongoexport -d myfirstdb -c Department -f dept_id,dept_no,dept_name,location,description --csv -o C:/test/department.csv
Mở department.csv bằng Microsoft Excel:

2.1.3- mongoexport và các lựa chọn

  • TODO

2.2- mongoimport


# Import từ file json
mongoimport -d database_name -c collection_name outfile.json



# Import từ file csv
# --headerline: Thông báo rằng sẽ sử dụng dòng dữ liệu đầu tiên làm tên các cột của Collection.
mongoimport -d database_name -c collection_name --type csv --file locations.csv --headerline

2.2.1- mongoimport từ file json

Import dữ liệu từ một file json vào một Collection:

cd C:\DevPrograms\MongoDB\bin

# Import từ file json
mongoimport -d database_name -c collection_name outfile.json

# Import vào database myfirstdb
# dữ liệu Insert vào Collection: Department2
# Từ file C:/test/department.json
mongoimport -d myfirstdb -c Department2 C:/test/department.json
Đây là hình ảnh nhìn trên công cụ trực quan RoboMongo:

2.2.2- mongoimport từ file csv

Import dữ liệu từ một file csv vào một Collection:

# Import từ file csv
# Cú pháp dạng đơn giản nhất:
# --headerline: Thông báo rằng sẽ sử dụng dòng dữ liệu đầu tiên làm tên các cột của Collection.


mongoimport -d database_name -c collection_name --type csv --file locations.csv --headerline


cd C:\DevPrograms\MongoDB\bin
 

# Import từ file vào database: myfirstdb
# Vào collection: Department3
# Vị trí file: C:/test/department.csv
# --headerline: Tham số nói rằng sẽ sử dụng dòng đầu tiên làm tên cột.

mongoimport -d myfirstdb -c Department3 --type csv --file C:/test/department.csv --headerline
Kết quả nhìn trên công cụ trực quan RoboMongo:

2.3- mongoexport/mongoimport và các lựa chọn

Trong trường hợp tổng quát bạn có các tùy chọn (option) để import/export liệt kê trong bảng dưới đây:
Option  Meaning Example
--help produce help message  
-v [ --verbose ] be more verbose (include multiple times for more verbosity e.g. -vvvvv)  
-h [ --host ] arg mongo host to connect to ("left,right" for pairs)  
--port arg server port. (Can also use --host hostname:port)  
--ipv6 enable IPv6 support (disabled by default)  
-d [ --db ] arg database to use  
-c [ --collection ] arg collection to use (some commands)  
-u [ --username ] arg username  
-p [ --password ] arg password  
--dbpath arg directly access mongod data files in the given path,instead of connecting to a mongod instance - needs to lock the data directory, so cannot be used if a mongod is currently accessing the same path  
--directoryperdb if dbpath specified, each db is in a separate directory  
-f [ --fields ] arg comma seperated list of field names e.g. -f name,age  
--fieldFile arg file with fields names - 1 per line  
--ignoreBlanks if given, empty fields in csv and tsv will be ignored  
--type arg type of file to import.  default: json (json,csv,tsv)  
--file arg file to import from; if not specified stdin is used  
--drop drop collection first  
--headerline CSV,TSV only - use first line as headers  
--upsert insert or update objects that already exist  
--upsertFields arg comma-separated fields for the query part of the upsert. You should make sure this is indexed.  
--stopOnError stop importing at the first error rather  than continuing  
--jsonArray load a json array, not one item per line. Currently limited to 4MB.  

3- Import/Export Database

mongodump sử dụng để export (xuất khẩu) toàn bộ một cơ sở dữ liệu Mongo ra một thư mục:
mongostore sử dụng để import (nhập khẩu) toàn bộ dữ liệu từ một thư mục (sản phẩm của mongodump) vào một database.

3.1- mongodump


# Cú pháp export toàn bộ database ra một thư mục (Gồm một số file)

mongodump -d database_name -o output_directory
Ví dụ:
Export toàn bộ cơ sở dữ liệu myfirstdb ra thư mục C:/test
 

cd C:\DevPrograms\MongoDB\bin

mongodump -d myfirstdb -o C:/test
Kết quả, thư mục con myfirstdb được tạo ra trong thư mục C:/test, nó chứa một số file.

3.2- mongorestore


# Cú pháp import toàn bộ một database ở dạng đơn giản nhất.

mongorestore -d database_name path_to_database
Ví dụ thư mục C:/test/myfirstdb chứa các file được dump ra trước đó. Chúng ta sẽ sử dụng nó để import vào cơ sở dữ liệu: mydb2

cd C:\DevPrograms\MongoDB\bin

mongorestore -d mydb2 C:\test\myfirstdb
Xem kết quả trên công cụ trực quan RoboMongo:

Xem thêm các chuyên mục: