Làm cách nào để xuất dữ liệu MongoDB sang CSV?

Bạn có thể xuất dữ liệu từ bộ sưu tập MongoDB của mình sang tệp CSV để phân tích thêm trong các công cụ như cơ sở dữ liệu Excel và SQL. Để truy cập công cụ xuất dữ liệu, từ Trình quản lý tác vụ, nhấp vào Thao tác DB → Trình quản lý hoạt động → Truy vấn dữ liệu vào tệp CSV. Hoàn thành biểu mẫu và thực hiện thao tác, bạn cũng có thể xem trước dữ liệu sẽ được xuất trước khi thực hiện bằng cách sử dụng nút xem trước

Nền tảng xuất ra một tệp được nén bằng gzip. Bạn có thể dễ dàng giải nén tệp này bằng hầu hết các công cụ nén và giải nén như winrar, winzip, 7zip, v.v.

Làm cách nào để xuất dữ liệu MongoDB sang CSV?

MongoDB cho phép bạn xuất dữ liệu của nó sang các định dạng tệp khác như JSON hoặc CSV để dữ liệu có thể được sử dụng bên ngoài bởi các ứng dụng khác. Vì vậy, để xuất dữ liệu từ cơ sở dữ liệu MongoDB, MongoDB cung cấp một công cụ dòng lệnh được gọi là mongoexport. Sử dụng công cụ này, bạn có thể xuất dữ liệu của bộ sưu tập ở định dạng JSON hoặc CSV (giá trị được phân tách bằng dấu phẩy). Hơn nữa, chúng tôi cũng có thể sử dụng các tính năng như giới hạn và sắp xếp trên bộ sưu tập trong khi xuất dữ liệu

Ghi chú. mongoexport không chạy trong vỏ mongo. Vì vậy, khi bạn sử dụng công cụ mongoexport, bạn phải thoát khỏi mongo shell

cú pháp

Để xuất dữ liệu ở định dạng JSON

mongoexport –db database_name –collection collection_name –out path_or_name_of_the_file

Để xuất dữ liệu ở định dạng CSV

mongoexport –db database_name –collection collection_name –type=csv –fields field_names –out path_or_name_of_the_file

Điểm quan trọng.  

  • Ở đây, lệnh out chỉ định thư mục và tệp lưu trữ dữ liệu đã xuất. Trong trường hợp chúng tôi không sử dụng –out, tệp sẽ được tạo tại đường dẫn mà chúng tôi đang ở thời điểm chạy cmd
  • Nếu tệp được chỉ định không được tạo thì công cụ mongoexport sẽ tự động tạo tệp và lưu trữ dữ liệu trong đó
  • Nếu công cụ mongoexport không có trong hệ thống của bạn thì bạn có thể cài đặt nó từ đây
  • Công cụ mongoexport cũng cung cấp các tùy chọn. Một số tùy chọn thường được sử dụng là
Quyền mua

Sự miêu tả

–helpIt sẽ trả về thông tin về tùy chọn và cách sử dụng mongoexport –version Nó sẽ trả về phiên bản của mongoexport–dbIt sẽ chỉ định tên của cơ sở dữ liệu mà mongoexport sẽ chạy trong đó. –collectionNó sẽ chỉ định bộ sưu tập để xuất. –fieldsNó sẽ chỉ định các trường sẽ bao gồm trong quá trình xuất. Nếu bạn đang chỉ định nhiều trường, hãy sử dụng dấu phẩy ở giữa chúng. e. g. –fields name, class–typeNó sẽ chỉ định loại tệp sẽ xuất. Đối với định dạng JSON, hãy sử dụng json và đối với định dạng CSV, hãy sử dụng csv. –outIt sẽ chỉ định một tệp mà dữ liệu sẽ được lưu trữ. –skipSử dụng tùy chọn này, bạn có thể kiểm soát nơi mongoexport bắt đầu xuất tệp. –sortSử dụng tùy chọn này, bạn có thể sắp xếp dữ liệu xuất. –limitSử dụng tùy chọn này, bạn có thể giới hạn số lượng tài liệu cần xuất.  

ví dụ

Trong các ví dụ sau, chúng tôi đang làm việc với

cơ sở dữ liệu. GeekforGeek

Bộ sưu tập. sinh viên

Các tài liệu. năm tài liệu chứa thông tin chi tiết về sinh viên ở dạng cặp trường-giá trị

Làm cách nào để xuất dữ liệu MongoDB sang CSV?

  • Xuất toàn bộ bộ sưu tập ở định dạng JSON

Trong ví dụ này, chúng tôi sẽ xuất tất cả các tài liệu có trong bộ sưu tập sinh viên sang tệp JSON (có tên là exporttudents. json) bằng công cụ mongoexport

mongoexport –db GeeksForGeeks –collection students –type=csv –fields name,age –out C. \Users\Darksider\students. csv

Công cụ cơ sở dữ liệu MongoDB bao gồm một tiện ích có tên là

mongoexport --db=PetHotel --collection=pets --type=csv --fields=_id,name,type,weight --query='{ "type": "Dog" }' --out=data/dogs.csv
6 cho phép bạn xuất dữ liệu MongoDB sang tệp CSV hoặc JSON

Một trong những điều bạn có thể làm với tiện ích này là xuất kết quả truy vấn. Bài viết này hướng dẫn bạn cách sử dụng

mongoexport --db=PetHotel --collection=pets --type=csv --fields=_id,name,type,weight --query='{ "type": "Dog" }' --out=data/dogs.csv
6 để xuất kết quả truy vấn MongoDB sang tệp CSV

cú pháp

Cú pháp của

mongoexport --db=PetHotel --collection=pets --type=csv --fields=_id,name,type,weight --query='{ "type": "Dog" }' --out=data/dogs.csv
6 như sau

mongoexport --collection=<coll> <options> <connection-string>

Bạn cần chạy

mongoexport --db=PetHotel --collection=pets --type=csv --fields=_id,name,type,weight --query='{ "type": "Dog" }' --out=data/dogs.csv
6 lệnh từ dòng lệnh của hệ thống (e. g. cửa sổ Terminal hoặc Command Prompt mới)

Không chạy các lệnh

mongoexport --db=PetHotel --collection=pets --type=csv --fields=_id,name,type,weight --query='{ "type": "Dog" }' --out=data/dogs.csv
6 từ trình bao
use PetHotel
db.pets.find({ "type": "Dog" })
1

Thí dụ

Mã ví dụ sau xuất kết quả của truy vấn sang tệp CSV

mongoexport --db=PetHotel --collection=pets --type=csv --fields=_id,name,type,weight --query='{ "type": "Dog" }' --out=data/dogs.csv

Điều này xuất một truy vấn truy vấn một bộ sưu tập có tên là

use PetHotel
db.pets.find({ "type": "Dog" })
2 trong cơ sở dữ liệu
use PetHotel
db.pets.find({ "type": "Dog" })
3. Truy vấn được xuất sang tệp có tên
use PetHotel
db.pets.find({ "type": "Dog" })
4 trong thư mục
use PetHotel
db.pets.find({ "type": "Dog" })
5

Nếu thư mục không tồn tại, nó đã được tạo. Tương tự với tệp. Nhân tiện, điều này giả định rằng không có vấn đề về quyền khi ghi tệp vào vị trí đã chỉ định

Trong ví dụ này, tôi không chỉ định bất kỳ máy chủ, cổng, xác thực nào, v.v., vì vậy, nó xuất bộ sưu tập từ phiên bản MongoDB chạy trên số cổng localhost mặc định _______6_______6

Dưới đây là giải thích về các thông số chúng tôi cung cấp ở đây

Tham sốMô tả
use PetHotel
db.pets.find({ "type": "Dog" })
7
hoặc là
use PetHotel
db.pets.find({ "type": "Dog" })
8Chỉ định cơ sở dữ liệu để chạy trên đó
mongoexport --db=PetHotel --collection=pets --type=csv --fields=_id,name,type,weight --query='{ "type": "Dog" }' --out=data/dogs.csv
6. Trong trường hợp này, cơ sở dữ liệu được gọi là
use PetHotel
db.pets.find({ "type": "Dog" })
3
Ngoài ra, tham số này có thể được chuyển bằng cách sử dụng
use PetHotel
db.pets.find({ "type": "Dog" })
8 (thay vì
use PetHotel
db.pets.find({ "type": "Dog" })
7).
{ "_id" : 1, "name" : "Wag", "type" : "Dog", "weight" : 20 }
{ "_id" : 2, "name" : "Bark", "type" : "Dog", "weight" : 10 }
{ "_id" : 6, "name" : "Fetch", "type" : "Dog", "weight" : 17 }
{ "_id" : 7, "name" : "Jake", "type" : "Dog", "weight" : 30 }
3
hoặc là
{ "_id" : 1, "name" : "Wag", "type" : "Dog", "weight" : 20 }
{ "_id" : 2, "name" : "Bark", "type" : "Dog", "weight" : 10 }
{ "_id" : 6, "name" : "Fetch", "type" : "Dog", "weight" : 17 }
{ "_id" : 7, "name" : "Jake", "type" : "Dog", "weight" : 30 }
4Chỉ định bộ sưu tập mà chúng tôi muốn xuất (hoặc chạy truy vấn đối với). Trong trường hợp này, bộ sưu tập được gọi là
use PetHotel
db.pets.find({ "type": "Dog" })
2
Ngoài ra, tham số này có thể được chuyển thành
{ "_id" : 1, "name" : "Wag", "type" : "Dog", "weight" : 20 }
{ "_id" : 2, "name" : "Bark", "type" : "Dog", "weight" : 10 }
{ "_id" : 6, "name" : "Fetch", "type" : "Dog", "weight" : 17 }
{ "_id" : 7, "name" : "Jake", "type" : "Dog", "weight" : 30 }
4 (thay vì
{ "_id" : 1, "name" : "Wag", "type" : "Dog", "weight" : 20 }
{ "_id" : 2, "name" : "Bark", "type" : "Dog", "weight" : 10 }
{ "_id" : 6, "name" : "Fetch", "type" : "Dog", "weight" : 17 }
{ "_id" : 7, "name" : "Jake", "type" : "Dog", "weight" : 30 }
3).
{ "_id" : 1, "name" : "Wag", "type" : "Dog", "weight" : 20 }
{ "_id" : 2, "name" : "Bark", "type" : "Dog", "weight" : 10 }
{ "_id" : 6, "name" : "Fetch", "type" : "Dog", "weight" : 17 }
{ "_id" : 7, "name" : "Jake", "type" : "Dog", "weight" : 30 }
8Chỉ định loại tệp đã xuất. Trong trường hợp này, chúng tôi chỉ định
{ "_id" : 1, "name" : "Wag", "type" : "Dog", "weight" : 20 }
{ "_id" : 2, "name" : "Bark", "type" : "Dog", "weight" : 10 }
{ "_id" : 6, "name" : "Fetch", "type" : "Dog", "weight" : 17 }
{ "_id" : 7, "name" : "Jake", "type" : "Dog", "weight" : 30 }
9 để xuất nó thành tệp CSV.
_id,name,type,weight
1,Wag,Dog,20
2,Bark,Dog,10
6,Fetch,Dog,17
7,Jake,Dog,30
0Chỉ định các trường mà chúng tôi muốn xuất. Chúng tôi có tùy chọn xuất tất cả các trường hoặc chỉ một số. Bạn cần liệt kê từng cái ở đây, cách nhau bằng dấu phẩy. Khi xuất sang CSV, việc chỉ định tên trường là bắt buộc. Bạn có thể làm như vậy thông qua tham số
_id,name,type,weight
1,Wag,Dog,20
2,Bark,Dog,10
6,Fetch,Dog,17
7,Jake,Dog,30
0 hoặc tham số
_id,name,type,weight
1,Wag,Dog,20
2,Bark,Dog,10
6,Fetch,Dog,17
7,Jake,Dog,30
2 (sẽ nói thêm về điều đó sau).
_id,name,type,weight
1,Wag,Dog,20
2,Bark,Dog,10
6,Fetch,Dog,17
7,Jake,Dog,30
3
hoặc là
_id,name,type,weight
1,Wag,Dog,20
2,Bark,Dog,10
6,Fetch,Dog,17
7,Jake,Dog,30
4Chỉ định truy vấn mà chúng tôi muốn xuất kết quả. Điều này phải được đặt trong dấu ngoặc đơn (để nó không tương tác với trình bao của bạn)
Tham số này cũng có thể được chuyển bằng cách sử dụng
_id,name,type,weight
1,Wag,Dog,20
2,Bark,Dog,10
6,Fetch,Dog,17
7,Jake,Dog,30
4.
_id,name,type,weight
1,Wag,Dog,20
2,Bark,Dog,10
6,Fetch,Dog,17
7,Jake,Dog,30
6Chỉ định tên tệp đã xuất và vị trí của tệp đó. Nếu bạn không chỉ định tên tệp,
mongoexport --db=PetHotel --collection=pets --type=csv --fields=_id,name,type,weight --query='{ "type": "Dog" }' --out=data/dogs.csv
6 ghi dữ liệu vào đầu ra tiêu chuẩn (
_id,name,type,weight
1,Wag,Dog,20
2,Bark,Dog,10
6,Fetch,Dog,17
7,Jake,Dog,30
8)

Kiểm tra tệp đã xuất

Hãy xác minh rằng thao tác xuất hoạt động như mong đợi

Trước tiên, hãy chạy truy vấn đối với bộ sưu tập gốc

use PetHotel
db.pets.find({ "type": "Dog" })

Kết quả

{ "_id" : 1, "name" : "Wag", "type" : "Dog", "weight" : 20 }
{ "_id" : 2, "name" : "Bark", "type" : "Dog", "weight" : 10 }
{ "_id" : 6, "name" : "Fetch", "type" : "Dog", "weight" : 17 }
{ "_id" : 7, "name" : "Jake", "type" : "Dog", "weight" : 30 }

Vì vậy, chúng tôi có thể thấy rằng có 4 chú chó, tất cả đều có cùng trường mà chúng tôi đã chỉ định trong thao tác xuất của mình

Bây giờ, hãy mở tệp đã xuất

use PetHotel
db.pets.find({ "type": "Dog" })
4 để xem có gì bên trong

_id,name,type,weight
1,Wag,Dog,20
2,Bark,Dog,10
6,Fetch,Dog,17
7,Jake,Dog,30

OK, vậy là tất cả dữ liệu trong tệp đã xuất như mong đợi

Xuất ít trường hơn

Bạn có thể chỉ định ít trường hơn với tham số

_id,name,type,weight
1,Wag,Dog,20
2,Bark,Dog,10
6,Fetch,Dog,17
7,Jake,Dog,30
0 nếu muốn

Thí dụ

mongoexport --db=PetHotel --collection=pets --type=csv --fields=name,weight --query='{ "type": "Dog" }' --out=data/dogs.csv

tập tin kết quả

name,weight
Wag,20
Bark,10
Fetch,17
Jake,30

Xóa tiêu đề cột

Bạn sẽ nhận thấy rằng tệp đã xuất trong các ví dụ trước bao gồm các tiêu đề cột

Bạn cũng có tùy chọn xuất tệp không có tiêu đề cột. Để làm điều này, hãy sử dụng tham số

mongoexport --db=PetHotel --collection=pets --type=csv --fields=name,weight --query='{ "type": "Dog" }' --out=data/dogs.csv
1

Thí dụ

mongoexport --db=PetHotel --collection=pets --type=csv --fields=_id,name,type,weight --query='{ "type": "Dog" }' --noHeaderLine --out=data/dogs.csv

Bây giờ khi tôi mở tệp đã xuất, không có tiêu đề cột nào

1,Wag,Dog,20
2,Bark,Dog,10
6,Fetch,Dog,17
7,Jake,Dog,30

Sử dụng tệp cho tên trường

Bạn có thể thay thế tham số

mongoexport --db=PetHotel --collection=pets --type=csv --fields=name,weight --query='{ "type": "Dog" }' --out=data/dogs.csv
2 bằng tham số
_id,name,type,weight
1,Wag,Dog,20
2,Bark,Dog,10
6,Fetch,Dog,17
7,Jake,Dog,30
2 để chỉ định tên của tệp chứa tên trường mà bạn muốn xuất

mongoexport --db=PetHotel --collection=pets --type=csv --fieldFile=data/dogs_fields.txt --query='{ "type": "Dog" }' --out=data/dogs.csv

Tệp chứa các trường phải có các trường được liệt kê, mỗi trường một dòng

Đây là giao diện của tệp

mongoexport --db=PetHotel --collection=pets --type=csv --fields=name,weight --query='{ "type": "Dog" }' --out=data/dogs.csv
4 trong ví dụ này

mongoexport --db=PetHotel --collection=pets --type=csv --fields=_id,name,type,weight --query='{ "type": "Dog" }' --out=data/dogs.csv
0

Điều này dẫn đến nội dung của tệp được xuất trông như thế này

mongoexport --db=PetHotel --collection=pets --type=csv --fields=_id,name,type,weight --query='{ "type": "Dog" }' --out=data/dogs.csv
1

Thay đổi thứ tự cột

Bạn có thể chuyển đổi thứ tự của các trường để xuất. Chúng không nhất thiết phải theo thứ tự như tài liệu cơ bản

Ví dụ, mã này

mongoexport --db=PetHotel --collection=pets --type=csv --fields=_id,name,type,weight --query='{ "type": "Dog" }' --out=data/dogs.csv
2

Kết quả trong tệp CSV sau

mongoexport --db=PetHotel --collection=pets --type=csv --fields=_id,name,type,weight --query='{ "type": "Dog" }' --out=data/dogs.csv
3

Kiểm soát truy cập/Xác thực

Nếu bạn không sử dụng localhost, bạn có thể sử dụng tham số

mongoexport --db=PetHotel --collection=pets --type=csv --fields=name,weight --query='{ "type": "Dog" }' --out=data/dogs.csv
5 để chỉ định máy chủ lưu trữ và
mongoexport --db=PetHotel --collection=pets --type=csv --fields=name,weight --query='{ "type": "Dog" }' --out=data/dogs.csv
6 để chỉ định cổng. Bạn cũng có thể sử dụng tham số
mongoexport --db=PetHotel --collection=pets --type=csv --fields=name,weight --query='{ "type": "Dog" }' --out=data/dogs.csv
7 để chỉ định tên người dùng và
mongoexport --db=PetHotel --collection=pets --type=csv --fields=name,weight --query='{ "type": "Dog" }' --out=data/dogs.csv
8 để đặt mật khẩu. Nếu bạn bỏ qua tham số mật khẩu, bạn sẽ được nhắc về nó. Ngoài ra còn có một tham số
mongoexport --db=PetHotel --collection=pets --type=csv --fields=name,weight --query='{ "type": "Dog" }' --out=data/dogs.csv
9 để chỉ định cơ sở dữ liệu xác thực nơi người dùng đã được tạo

Thí dụ

mongoexport --db=PetHotel --collection=pets --type=csv --fields=_id,name,type,weight --query='{ "type": "Dog" }' --out=data/dogs.csv
4

Kiểm tra cho mongoexport --db=PetHotel --collection=pets --type=csv --fields=_id,name,type,weight --query='{ "type": "Dog" }' --out=data/dogs.csv6

mongoexport --db=PetHotel --collection=pets --type=csv --fields=_id,name,type,weight --query='{ "type": "Dog" }' --out=data/dogs.csv
6 là một phần của gói Công cụ cơ sở dữ liệu MongoDB. MongoDB Database Tools là một bộ tiện ích dòng lệnh để làm việc với MongoDB

Nếu bạn không chắc mình đã cài đặt MongoDB Database Tools/

mongoexport --db=PetHotel --collection=pets --type=csv --fields=_id,name,type,weight --query='{ "type": "Dog" }' --out=data/dogs.csv
6 hay chưa, hãy thử chạy lệnh sau trong Terminal hoặc Command Prompt để kiểm tra

mongoexport --db=PetHotel --collection=pets --type=csv --fields=_id,name,type,weight --query='{ "type": "Dog" }' --out=data/dogs.csv
5

Nếu bạn có nó, bạn sẽ thấy thông tin phiên bản, v.v. Nếu bạn không có nó, bạn có thể sử dụng hướng dẫn cài đặt trên trang web MongoDB để cài đặt nó vào hệ thống của bạn

Nơi để chạy các lệnh?

Đừng quên, bạn cần chạy các lệnh

mongoexport --db=PetHotel --collection=pets --type=csv --fields=_id,name,type,weight --query='{ "type": "Dog" }' --out=data/dogs.csv
6 từ dòng lệnh của hệ thống (e. g. cửa sổ Terminal hoặc Command Prompt mới)

Làm cách nào để chuyển đổi dữ liệu MongoDB thành Excel?

Quy trình .
Bắt đầu Excel. Khởi động Microsoft Excel và mở một trang tính trống
Chọn tab Dữ liệu. Chọn tab Dữ liệu để mở thanh công cụ Dữ liệu
Mở Hộp thoại Trình hướng dẫn Kết nối Dữ liệu. .
Chọn ODBC DSN. .
Chọn DSN của bạn. .
Chọn một cơ sở dữ liệu và bảng. .
Lưu tệp kết nối. .
Chỉ định định dạng trang tính

Làm cách nào để lấy dữ liệu từ MongoDB?

Bạn có thể sử dụng thao tác đọc để truy xuất dữ liệu từ cơ sở dữ liệu MongoDB của mình. Có nhiều loại thao tác đọc truy cập dữ liệu theo những cách khác nhau. Nếu bạn muốn yêu cầu kết quả dựa trên một bộ tiêu chí từ bộ dữ liệu hiện có, bạn có thể sử dụng thao tác tìm chẳng hạn như phương thức find() hoặc findOne().

Làm cách nào để tìm nạp dữ liệu từ bộ sưu tập trong MongoDB?

Để chọn dữ liệu từ một bộ sưu tập trong MongoDB, chúng ta có thể sử dụng phương thức findOne() . Phương thức findOne() trả về lần xuất hiện đầu tiên trong vùng chọn. Tham số đầu tiên của phương thức findOne() là một đối tượng truy vấn.

Làm cách nào để xuất tệp CSV từ MongoDB bằng nút JS?

Xuất dữ liệu MongoDB sang tệp CSV bằng fs . Mô-đun có lớp Trình phân tích cú pháp mà chúng ta có thể sử dụng phương thức parse() để lấy dữ liệu được định dạng CSV dưới dạng chuỗi . Thì hàm fs writeFile() giúp ta ghi chuỗi vào file CSV. Cài đặt bằng lệnh. npm cài đặt json2csv.