MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Nhập tệp JSON vào MongoDB với mongoimport

Khi sử dụng MongoDB, bạn có thể sử dụng mongoimport để nhập tài liệu vào một bộ sưu tập. mongoimport là một tiện ích dòng lệnh nhập nội dung từ tệp JSON mở rộng, CSV hoặc TSV. Tệp nhập có thể đã được tạo bởi mongoexport hoặc một số tiện ích xuất khẩu khác.

Bài viết này trình bày các ví dụ về cách nhập tệp JSON vào MongoDB.

Ví dụ

Giả sử chúng ta có tệp JSON sau được gọi là pets.json :

{ "_id" : 1, "name" : "Wag", "type" : "Dog" }
{ "_id" : 2, "name" : "Bark", "type" : "Dog" }
{ "_id" : 3, "name" : "Meow", "type" : "Cat" }

Lệnh sau nhập tệp JSON vào MongoDB:

mongoimport --db=PetHotel --file=pets.json

Trong trường hợp này, tôi không chỉ định một bộ sưu tập để nhập nó vào, vì vậy nó đã tạo một bộ sưu tập có cùng tên của tệp (pets ).

Kiểm tra kết quả

Hãy xem bộ sưu tập.

db.pets.find()

Kết quả:

{ "_id" : 1, "name" : "Wag", "type" : "Dog" }
{ "_id" : 2, "name" : "Bark", "type" : "Dog" }
{ "_id" : 3, "name" : "Meow", "type" : "Cat" }

Chúng tôi có thể thấy rằng các tài liệu đã được nhập như mong đợi.

Chỉ định Tên Bộ sưu tập

Bạn có thể sử dụng --collection (hoặc -c ) tham số để chỉ định một tập hợp để nhập tệp vào.

Dưới đây là một ví dụ về việc sử dụng --collection để nhập cùng một tệp vào một bộ sưu tập khác:

mongoimport --db=PetHotel --collection=pets2 --file=pets.json

Nếu bộ sưu tập chưa tồn tại, nó sẽ được tạo. Nếu nó đã tồn tại, thì kết quả nhập sẽ phụ thuộc vào chế độ bạn đang sử dụng (thêm thông tin về điều này bên dưới).

Bỏ bộ sưu tập trước khi nhập

Bạn có thể sử dụng --drop để loại bỏ bất kỳ bộ sưu tập hiện có nào có cùng tên với bộ sưu tập bạn đang cố gắng tạo / nhập.

Hãy tưởng tượng chúng ta có một tệp thứ hai, được gọi là pets2.json , với tài liệu sau:

{ "_id" : 4, "name" : "Bubbles" }
{ "_id" : 5, "name" : "Hop", "type": "Kangaroo" }

Đây là những gì sẽ xảy ra nếu tôi nhập tài liệu đó vào pets bộ sưu tập sử dụng --drop tùy chọn:

mongoimport --db=PetHotel --collection=pets --drop --file=pets2.json

Đầu ra:

2021-01-03T15:42:25.626+1000	connected to: mongodb://localhost/
2021-01-03T15:42:25.640+1000	dropping: PetHotel.pets
2021-01-03T15:42:25.734+1000	2 document(s) imported successfully. 0 document(s) failed to import.

Thông báo cho chúng tôi biết rằng bộ sưu tập đã bị xóa và một tài liệu đã được nhập.

Hãy xem bộ sưu tập:

db.pets.find()

Kết quả:

{ "_id" : 5, "name" : "Hop", "type" : "Kangaroo" }
{ "_id" : 4, "name" : "Bubbles" }

Như dự kiến, hai tài liệu mới của chúng tôi là những tài liệu duy nhất trong bộ sưu tập.

Chế độ nhập

Có nhiều chế độ nhập khác nhau mà bạn có thể sử dụng với mongoimport . Các chế độ này xác định điều gì sẽ xảy ra nếu đã có tài liệu khớp trong bộ sưu tập mà bạn đang cố gắng nhập vào.

Các chế độ như sau:

Chế độ Mô tả
insert Đây là chế độ mặc định. Chế độ này sẽ chèn các tài liệu từ tệp nhập. Nếu một tài liệu phù hợp đã tồn tại trong bộ sưu tập, thì sẽ xảy ra lỗi. Tài liệu phù hợp là tài liệu có cùng một ID duy nhất (chẳng hạn như _id phù hợp trường) dưới dạng tài liệu trong tệp nhập.
upsert Thay thế các tài liệu hiện có trong cơ sở dữ liệu bằng các tài liệu phù hợp từ tệp nhập. Tất cả các tài liệu khác đã được chèn.
merge Hợp nhất tài liệu hiện có khớp với tài liệu trong tệp nhập với tài liệu mới. Tất cả các tài liệu khác đã được chèn.
delete Xóa tài liệu hiện có trong cơ sở dữ liệu khớp với tài liệu trong tệp nhập. Mọi tài liệu không khớp đều không có hiệu lực.

Xem Chế độ nhập của mongoimport để biết ví dụ về từng chế độ.

Kiểm tra mongoimport

mongoimport là một phần của gói Công cụ cơ sở dữ liệu MongoDB. Công cụ cơ sở dữ liệu MongoDB 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ó Công cụ cơ sở dữ liệu MongoDB / mongoimport hay không đã cài đặt, hãy thử chạy lệnh sau trong Terminal hoặc Command Prompt của bạn để kiểm tra:

mongoimport --version

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

Chạy lệnh ở đâu?

Đừng quên, bạn cần chạy mongoimport lệnh từ dòng lệnh của hệ thống của bạn (ví dụ:cửa sổ Terminal hoặc Command Prompt mới).

Đừng chạy chúng từ mongo vỏ bọc.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Id đối tượng Mongo DB deserializing sử dụng trình tuần tự JSON

  2. Giao diện Mongo

  3. Mongoose giới hạn / bù đắp và truy vấn đếm

  4. Sao chép MongoDB qua môi trường đám mây lai

  5. MongoDB $ dayOfMonth