Bạn có thể mang dữ liệu từ các tệp khai triển MongoDB hiện tại, JSON
hoặc CSV
vào các tệp phát triển trong ATLAS bằng cách sử dụng
di trú trực tiếp nơi Atlas hỗ trợ bạn, hoặc
Các công cụ để di chuyển dữ liệu theo hướng dẫn từ các triển khai hiện tại của bạn vào Atlas
Bảng sau đây thảo luận về cách lựa chọn giữa các công cụ khác nhau để di chuyển và nhập dữ liệu cho các cụm biến cấu hình phức tạp
Để chuyển dữ liệu đến một ví dụ không có máy chủ, hãy sử dụng la bàn để xuất và nhập dữ liệu hoặc chuyển dữ liệu bằng các công cụ quản lý tự động. Để tìm hiểu thêm, hãy xem giới hạn các cá thể không có máy chủ. sử dụng La bàn để xuất và nhập dữ liệu hoặc di chuyển dữ liệu bằng các công cụ tự quản lý. Để tìm hiểu thêm, hãy xem Giới hạn của Serverless Instance.
Để tải dữ liệu vào một cụm từ mới trong Atlas, hãy xem tải dữ liệu mẫu
Để tạo bản sao của cụm từ của bạn cho mục đích thử nghiệm, hãy xem các phương thức sao lưu MongoDB. Phương pháp sao lưu MongoDB.
Nếu ứng dụng mà bạn muốn chuyển yêu cầu thời gian hoạt động gần liên tục, hãy liên hệ với MongoDB hỗ trợ và chia sẻ các yêu cầu thời gian hoạt động và cụm cấu hình của bạn
Tài liệu về nhà → MongoDB Atlas cho chính phủ → MongoDB Atlas cho chính phủ
Dịch vụ di chuyển trực tiếp Atlas có thể di chuyển dữ liệu của bạn từ môi trường hiện tại của bạn sang MongoDB Atlas cho chính phủ với tác động tối thiểu đến ứng dụng của bạn. Các thủ tục dịch vụ chuyển trực tiếp cho ATLAS cũng được áp dụng cho Atlasgov
Để biết tổng quan về dịch vụ và hướng dẫn các cuộc di cư chung, hãy xem Atlas Live Di cư. Di chuyển trực tiếp trên Atlas .
mẹo
Atlas tài liệu
Để biết thông tin chi tiết về dữ liệu đầu vào, hãy xem di chuyển hoặc nhập dữ liệu vào cụm từ của bạn. Di chuyển hoặc nhập dữ liệu vào cụm của bạn .
← & NBSP; Backup and Restore Cluster DataAtlas Search →
Tài liệu về nhà → Bắt đầu với hướng dẫn → Bắt đầu với Hướng dẫn
Trong hướng dẫn này, bạn sẽ tải dữ liệu mẫu của chúng tôi vào cụm từ của mình
Need time. 5 phút
MongoDB account. Xem Đăng ký tài khoản MongoDB
Một cụm Atlas. View Create a phrase
Ghi chú
Nếu Atlas yêu cầu bạn chọn bất kỳ dữ liệu nào để tải xuống, hãy chọn sample_guides
Khi tải xuống hoàn tất, tab Bộ sưu tập tập tin sẽ làm mới để hiển thị dữ liệu mẫu của bạn. Bộ sưu tập tab làm mới để hiển thị dữ liệu mẫu của bạn.
Bạn đã thấy các cơ sở dữ liệu sau cụm từ của bạn
data name
Mô tả sự kiện
sample-airbnb
Chứa chi tiết trong danh sách Airbnb. danh sách AirBnB .
sample-analytics
Chứa dữ liệu đào tạo cho một ứng dụng dịch vụ tài chính giả
sample-geospatial
Shipwreck data
sample-guides
Hành động dữ liệu có chứa dữ liệu
sample-mflix
Container data film
________số 8
Chứa dữ liệu nhà hàng
sample-supplies
Chứa dữ liệu từ một cửa hàng cung cấp văn phòng giả
CSV
0
Chứa bộ dữ liệu dịch vụ đào tạo MongoDB
CSV
1
Chứa báo cáo chi tiết
Nếu bạn đã hoàn tất thành công quy trình theo hướng dẫn này, bạn đã tải xuống dữ liệu mẫu của chúng tôi
Trong hướng dẫn tiếp theo, bạn sẽ truy xuất chuỗi kết nối phát triển khai cơ sở dữ liệu của mình
Bất kể bạn đang xây dựng gì với MongoDB, đến một lúc nào đó bạn sẽ muốn nhập một số dữ liệu. Cho dù đó là phần dữ liệu lớn của bạn hoặc chỉ một số dữ liệu tham chiếu mà bạn muốn hợp nhất với bộ dữ liệu chính của mình, bạn sẽ thấy mình với một loạt tệp JSON hoặc CSV mà bạn cần nhập vào một bộ. . May thay, MongoDB cung cấp một công cụ gọi là Mongoimport được thiết kế cho nhiệm vụ này. Hướng dẫn này sẽ giải thích cách sử dụng hiệu quả Mongoimport để đưa dữ liệu của bạn vào cơ sở dữ liệu MongoDB của bạn. mongoimport được thiết kế cho tác vụ này. Hướng dẫn này sẽ giải thích cách sử dụng hiệu quả mongoimport để đưa dữ liệu vào cơ sở dữ liệu MongoDB của bạn.
Chúng tôi cũng cung cấp tài liệu tham khảo Mongoimport, nếu bạn đang tìm kiếm một cái gì đó toàn diện hoặc bạn chỉ cần tìm kiếm một dòng lệnh tùy chọn. Tài liệu tham khảo MongoImport, nếu bạn đang tìm kiếm thứ gì đó toàn diện hoặc bạn chỉ cần tra cứu tùy chọn dòng lệnh.
Điều kiện tiên quyết
Hướng dẫn này giả định rằng bạn có thể thoải mái thoải mái một cách hợp lý với dòng lệnh. Hầu hết các hướng dẫn sẽ chỉ chạy các lệnh, nhưng đến cuối cùng, tôi sẽ chỉ ra cách thực hiện thông tin dữ liệu thông qua một số công cụ dòng lệnh, chẳng hạn như CSV
2. ______12 .
Nếu bạn không có nhiều kinh nghiệm trên dòng lệnh [đôi khi cũng được gọi là thiết bị đầu cuối, hoặc shell hoặc bash], tại sao không làm theo cùng một số ví dụ?
Các ví dụ được hiển thị đều được viết trên macOS, nhưng nên chạy trên bất kỳ loại hệ thống UNIX nào. Nếu bạn đang chạy trên Windows, tôi khuyên bạn nên chạy các lệnh ví dụ bên trong hệ thống con Windows cho Linux. Hệ thống con Windows dành cho Linux.
Bạn sẽ cần một cơ sở dữ liệu MongoDB tạm thời để kiểm tra các lệnh này. Nếu bạn mới bắt đầu, tôi khuyên bạn nên đăng ký tài khoản Atlas MongoDB miễn phí và sau đó chúng tôi sẽ chăm sóc cụm từ cho bạn. MongoDB Atlas và sau đó chúng tôi sẽ chăm sóc cụm cho bạn.
Và tất nhiên, bạn sẽ cần một bản sao của CSV
3. Nếu bạn đã cài đặt MongoDB trên máy trạm của mình thì bạn đã có thể cài đặt CSV
3. Nếu không, hãy làm theo hướng dẫn này trên trang web MongoDB để cài đặt nó. ______13 . Nếu bạn đã cài đặt MongoDB trên máy trạm của mình thì có thể bạn đã cài đặt CSV
3 . Nếu không, hãy làm theo các hướng dẫn này trên trang web MongoDB để cài đặt nó.
Started with
CSV
3
CSV
3 là một công cụ dòng lệnh mạnh mẽ để nhập dữ liệu từ các tệp JSON, CSV và TSV vào các bộ sưu tập MongoDB. Đó là siêu nhanh và nhiều luồng, vì vậy trong nhiều trường hợp sẽ nhanh hơn bất kỳ lệnh chỉnh sửa tập lệnh nào bạn có thể viết để làm điều tương tự. CSV
3 Sử dụng có thể được kết hợp với một số công cụ dòng lệnh khác, chẳng hạn như CSV
2 để thao tác JSON hoặc CSV
9 để thao tác CSV hoặc thậm chí cả sample_guides
0 để tải xuống các tệp dữ liệu từ máy chủ trên Internet. Như với nhiều dòng lệnh công cụ, các tùy chọn là vô tận. là công cụ dòng lệnh mạnh mẽ để nhập dữ liệu từ tệp JSON, CSV và TSV vào bộ sưu tập MongoDB. Nó siêu nhanh và đa luồng, vì vậy trong nhiều trường hợp sẽ nhanh hơn bất kỳ tập lệnh tùy chỉnh nào mà bạn có thể viết để làm điều tương tự. ______13 có thể kết hợp sử dụng với một số công cụ dòng lệnh khác, chẳng hạn như CSV
2 for JSON manipulation, or CSV
9 for CSV manipulation, or even sample_guides
0 for dynamically downloading data files from servers on the internet. As with many command-line tools, the options are endless!
Chọn định dạng nguồn dữ liệu
Theo nhiều cách, việc có nguồn dữ liệu của bạn trong tệp JSON tốt hơn CSV [và TSV]. JSON vừa là định dạng dữ liệu phân cấp, chẳng hạn như tài liệu MongoDB và cũng rõ ràng về các loại dữ liệu mà nó mã hóa. Mặt khác, nguồn dữ liệu JSON có thể khó xử lý - trong nhiều trường hợp, nó không nằm trong cấu trúc bạn muốn hoặc nó có số liệu được mã hóa dưới dạng chuỗi hoặc có thể định dạng ngày không ở định dạng CSV
3 chấp nhận . ______13 chấp nhận.
Dữ liệu CSV [và TSV] là bảng và mỗi hàng sẽ được nhập vào MongoDB dưới dạng tài liệu riêng biệt. Điều này có nghĩa là các định dạng này không thể hỗ trợ phân cấp dữ liệu theo cách tương tự như tài liệu MongoDB có thể. Khi nhập dữ liệu CSV vào MongoDB, CSV
3 sẽ cố gắng đưa ra các lựa chọn hợp lý khi xác định loại trường cụ thể, chẳng hạn như sample_guides
3 hoặc sample_guides
4. Hành vi này có thể được ghi lại với việc sử dụng một số cờ và bạn có thể chỉ định các loại nếu bạn muốn. Trên hết, CSV
3 cung cấp một số cơ sở cho ngày phân tích cú pháp và các loại khác nhau ở các định dạng khác nhau. ______13 sẽ cố gắng đưa ra lựa chọn hợp lý khi xác định loại trường cụ thể, chẳng hạn như sample_guides
3 or sample_guides
4. This behaviour can be overridden with the use of some flags, and you can specify types if you want to. On top of that, CSV
3 cung cấp một số tiện ích để phân tích ngày tháng và các loại khác ở các định dạng khác nhau.
Trong nhiều trường hợp, việc lựa chọn nguồn định dạng dữ liệu sẽ không tùy thuộc vào bạn - sẽ tùy thuộc vào tổ chức tạo dữ liệu và cung cấp cho bạn. Tôi khuyên bạn nên nếu nguồn dữ liệu ở định dạng CSV thì bạn không nên cố gắng chuyển đổi nó thành JSON trước khi bạn có kế hoạch tái cấu trúc nó
Liên kết
CSV
3
to your database
Phần này giả định rằng bạn đang kết nối với một thiết lập tương đối đơn giản - với cơ sở dữ liệu được xác thực mặc định và một số xác thực được thiết lập. [Bạn nên luôn tạo một số người dùng để xác thực. ]luôntạo một số người dùng để xác thực. ]
Nếu bạn không cung cấp bất kỳ chi tiết kết nối nào cho Mongoimport, nó sẽ cố gắng kết nối với MongoDB trên máy cục bộ của bạn, trên cổng 27017 [là mặc định của MongoDB]. Điều này giống như cung cấp sample_guides
7. ______27 .
One uri to cai trị tất cả
Có một số tùy chọn cho phép bạn cung cấp thông tin kết nối riêng cho Mongoimport, nhưng tôi khuyên bạn nên sử dụng tùy chọn sample_guides
8. Nếu bạn đang sử dụng Atlas, bạn có thể nhận URI kết nối phù hợp từ giao diện Atlas, bằng cách nhấp vào nút "Kết nối" của cụm từ và chọn "Kết nối ứng dụng của bạn". . ______28 tùy chọn. Nếu đang sử dụng Atlas, bạn có thể lấy URI kết nối thích hợp từ giao diện Atlas bằng cách nhấp vào nút "Kết nối" của cụm và chọn "Kết nối ứng dụng của bạn". [Atlas đang được phát triển liên tục, vì vậy các hướng dẫn này có thể hơi lỗi thời. ] Đặt URI làm giá trị của tùy chọn sample_guides
8 của bạn và thay thế tên người dùng và mật khẩu bằng các giá trị thích hợp.
Xin lưu ý rằng trong mẫu này, tên người dùng và mật khẩu phải được mã hóa URL. Nếu bạn không muốn lắng nghe về điều này, thì hãy cung cấp tên người dùng và mật khẩu bằng các tùy chọn sample-airbnb
0 và sample-airbnb
1 để thay thế. thay vào đó. rằng trong biểu mẫu này, tên người dùng và mật khẩu phải được mã hóa URL. Nếu bạn không muốn lo lắng về vấn đề này, hãy cung cấp tên người dùng và mật khẩu bằng cách sử dụng sample-airbnb
0 và sample-airbnb
1< . options instead:
Nếu bạn bỏ qua mật khẩu từ URI và không cung cấp tùy chọn sample-airbnb
1, thì CSV
3 sẽ nhắc bạn nhận mật khẩu trên dòng lệnh. Trong tất cả các trường hợp này, việc sử dụng các trích dẫn đơn xung quanh các giá trị, như tôi đã thực hiện, sẽ giúp bạn giải quyết các vấn đề trong thời gian dài. ______31 , sau đó CSV
3 sẽ nhắc bạn nhập mật khẩu trên lệnh . Trong tất cả các trường hợp này, việc sử dụng dấu nháy đơn quanh các giá trị, như tôi đã làm, sẽ giúp bạn tránh được các vấn đề về lâu dài.
Nếu bạn không kết nối với ATLAS cơ sở dữ liệu, thì bạn sẽ phải tạo URI của riêng mình. Nếu bạn đang kết nối với một máy chủ duy nhất [tức là bạn không có bản sao], thì URI của bạn sẽ giống như thế này. sample-airbnb
4. Nếu bạn đang chạy một bản sao [và bạn nên. ] Sau đó, bạn có nhiều tên máy chủ để kết nối và bạn không biết trước đó là cái chính. Trong trường hợp này, URI của bạn sẽ bao gồm một loạt các máy chủ trong cụm của bạn [bạn không cần cung cấp tất cả các máy chủ của cụm của bạn, hãy cung cấp một số trong số chúng có sẵn] và Mongoimport sẽ tự động . A URI bản sao trông giống như thế này. sample-airbnb
5. không kết nối với cơ sở dữ liệu Atlas, thì bạn sẽ phải tạo URI của riêng mình. Nếu bạn đang kết nối với một máy chủ [tôi. e. bạn không có bộ sao chép], thì URI của bạn sẽ trông như thế này. ______34 . Nếu bạn đang chạy replicaset [và bạn nên. ] thì bạn có nhiều hơn một tên máy chủ để kết nối và bạn không biết trước tên nào là chính. Trong trường hợp này, URI của bạn sẽ bao gồm một loạt máy chủ trong cụm của bạn [bạn không cần cung cấp tất cả các máy chủ của cụm, miễn là một trong số chúng khả dụng] và mongoimport sẽ tự động khám phá và kết nối với máy chủ chính. Một URI bản sao trông như thế này. ______35 .
Khi bạn đã xác định URI, thì niềm vui bắt đầu. Trong phần còn lại của hướng dẫn này, tôi sẽ loại bỏ những lá cờ đó ra. Bạn sẽ cần thêm chúng vào khi thử các tùy chọn khác nhau
Nhập một tài liệu JSON
Cách đơn giản nhất để nhập một tệp duy nhất vào MongoDB là sử dụng tùy chọn sample-airbnb
6 để chỉ định một tệp. Theo tôi, vấn đề tốt nhất là bạn có một thư mục đầy đủ các tệp JSON cần nhập. Lý tưởng nhất là mỗi tệp JSON chứa một tài liệu bạn muốn nhập vào MongoDB, nó nằm trong cấu trúc chính xác cấu trúc và mỗi giá trị thuộc loại chính xác. Sử dụng tùy chọn này khi bạn muốn nhập một tệp duy nhất làm tài liệu duy nhất vào bộ sưu tập MongoDB. ______36 tùy chọn để chỉ định tệp. Theo tôi, tình huống tốt nhất là bạn có một thư mục chứa đầy các tệp JSON cần được nhập. Lý tưởng nhất là mỗi tệp JSON chứa một tài liệu bạn muốn nhập vào MongoDB, nó có cấu trúc chính xác và mỗi giá trị đều thuộc loại chính xác. Sử dụng tùy chọn này khi bạn muốn nhập một tệp dưới dạng một tài liệu vào bộ sưu tập MongoDB.
Bạn sẽ tìm thấy dữ liệu ở định dạng này trong thư mục 'File_per_document' trong dữ liệu repo dữ liệu dữ liệu. Mỗi tài liệu sẽ trông giống như thế này. repo GitHub dữ liệu mẫu. Mỗi tài liệu sẽ trông như thế này.
Lệnh trên sẽ nhập tất cả các tệp JSON vào bộ sưu tập sample-airbnb
7. Bạn không cần phải tạo bộ sưu tập trước. ______37 . Bạn không phải tạo bộ sưu tập trước.
Tài liệu đã nhập khẩu, được xem trong La bàn MongoDB
Nếu bạn sử dụng Compass MongoDB hoặc một công cụ khác để kết nối với bộ sưu tập bạn vừa tạo, bạn sẽ thấy MongoDB tạo cũng có giá trị sample-airbnb
8 trong mỗi tài liệu cho bạn. Điều này là MongoDB yêu cầu mọi tài liệu phải có một sample-airbnb
8 duy nhất, nhưng bạn không cung cấp một tài liệu nào. Tôi sẽ đề cập nhiều hơn về điều này trong thời gian ngắn. MongoDB Compass hoặc một công cụ khác để kết nối với bộ sưu tập bạn vừa tạo, bạn sẽ thấy rằng MongoDB cũng đã tạo một . Điều này là do MongoDB yêu cầu mọi tài liệu phải có một value in each document for you. This is because MongoDB requires every document to have a unique sample-airbnb
8 duy nhất, nhưng bạn đã không cung cấp một. Tôi sẽ trình bày thêm về điều này trong thời gian ngắn.
Nhập nhiều tài liệu JSON
Mongoimport sẽ chỉ nhập một tệp tại một thời điểm với tùy chọn sample-airbnb
6, nhưng bạn có thể hiểu được điều này bằng cách đưa nhiều tài liệu vào JSON Mongoimport từ một công cụ khác, chẳng hạn như sample-analytics
1. Điều này nhanh hơn là nhập tệp tại một thời điểm, chạy Mongoimport từ một vòng lặp, vì bản thân Mongoimport được đa luồng để tải lên nhanh hơn nhiều tài liệu. Với một thư mục chứa đầy đủ các tệp JSON, trong đó mỗi tệp JSON phải được nhập dưới định dạng tài liệu MongoDB, đặc biệt có thể được nhập bằng ____ 42-ing vào thư mục chứa các tệp JSON và chạy. ______36 , nhưng bạn có thể giải quyết vấn đề này bằng cách đưa nhiều tài liệu JSON vào mongoimport từ một công cụ khác, chẳng hạn như sample-analytics
1 . Điều này nhanh hơn nhập từng tệp một, chạy mongoimport từ một vòng lặp, vì bản thân mongoimport được đa luồng để tải lên nhiều tài liệu nhanh hơn. Với một thư mục chứa đầy các tệp JSON, trong đó mỗi tệp JSON sẽ được nhập dưới dạng một tài liệu MongoDB riêng biệt, có thể được nhập bằng cách . This is faster than importing one file at a time, running mongoimport from a loop, as mongoimport itself is multithreaded for faster uploads of multiple documents. With a directory full of JSON files, where each JSON file should be imported as a separate MongoDB document can be imported by sample-analytics
2 vào thư mục chứa .
Như trước đây, MongoDB đã tạo ra một sample-airbnb
8 mới cho mỗi tài liệu được đưa vào bộ sưu tập MongoDB, vì chúng không có trong nguồn dữ liệu. ______38 cho mỗi tài liệu được chèn vào bộ sưu tập MongoDB, vì chúng không có trong dữ liệu nguồn.
Nhập một mảng json lớn
Đôi khi bạn sẽ có nhiều tài liệu có trong mảng JSON trong một tài liệu, giống như sau
Bạn có thể nhập dữ liệu ở định dạng này bằng tùy chọn sample-airbnb
6, sử dụng tùy chọn sample-analytics
5. ______36 tùy chọn, sử dụng tùy chọn sample-analytics
5 .
Nếu bạn quên thêm tùy chọn --JsonArray, CSV
3 sẽ thất bại với lỗi "Không thể giải mã mảng vào tài liệu. " Điều này là làm cho các tài liệu tương thích với các đối tượng JSON, không phải mảng. Bạn có thể lưu trữ một mảng dưới dạng _value_ trên một tài liệu, nhưng một tài liệu không thể là một mảng. ______13 sẽ không thành công với lỗi "không thể giải mã mảng thành Tài liệu. " Điều này là do tài liệu tương đương với đối tượng JSON, không phải mảng. Bạn có thể lưu trữ một mảng dưới dạng _value_ trên tài liệu, nhưng tài liệu không thể là một mảng.
Nhập các loại cụ thể của MongoDB với JSON
Nếu bạn nhập một số dữ liệu JSON từ repo dữ liệu mẫu và sau đó xem lược đồ của bộ sưu tập trong la bàn, bạn có thể nhận thấy một số vấn đề. repo github dữ liệu mẫu rồi xem lược đồ của bộ sưu tập trong Compass, bạn có thể nhận thấy một số vấn đề.
Các giá trị của
sample-analytics
7 vàsample-analytics
8 phải là các loại "ngày" chứ không phải "chuỗi". ______47 vàsample-analytics
8 phải là loại "ngày tháng", không phải "chuỗi".MongoDB hỗ trợ các điểm địa lý, nhưng không nhận ra vĩ độ và kinh độ của các trạm bắt đầu và dừng các trạm như vậy
Điều này xuất phát từ một sự khác biệt cơ bản giữa tài liệu MongoDB và tài liệu JSON. Mặc dù các tài liệu MongoDB thường trông giống như dữ liệu JSON, nhưng chúng không phải như vậy. MongoDB save data dưới định dạng BSON. BSON có nhiều lợi thế so với JSON. Nó nhỏ gọn hơn, nó nhanh hơn để vượt qua và nó hỗ trợ nhiều loại JSON hơn. Trong số các loại đó là ngày, loại Geojson, dữ liệu nhị phân và số thập phân. Tất cả các loại được liệt kê trong tài liệu MongoDBtrông giống như dữ liệu JSON, chúng không phải. MongoDB lưu trữ dữ liệu dưới dạng BSON. BSON có nhiều lợi thế hơn JSON. Nó nhỏ gọn hơn, duyệt nhanh hơn và hỗ trợ nhiều loại hơn so với JSON. Trong số các loại đó là Ngày, loại GeoJSON, dữ liệu nhị phân và số thập phân. Tất cả các loại được liệt kê trong tài liệu MongoDB
Nếu bạn muốn MongoDB nhận ra các trường được nhập từ JSON dưới dạng các loại công cụ BSON có thể, các trường đó phải được thao tác để chúng tuân theo một cấu trúc mà chúng tôi gọi là JSON mở rộng. Điều này có nghĩa là trường sau. JSON mở rộng. Điều này có nghĩa là trường sau.
must be supply for MongoDB as
to it was known as the date. Lưu ý rằng định dạng của chuỗi ngày đã thay đổi một chút, với 'T' phân tách ngày và thời gian và z ở cuối, biểu thị thời gian UTC. Loại Ngày. Lưu ý rằng định dạng của chuỗi ngày đã thay đổi một chút, với chữ 'T' phân tách ngày và giờ và chữ Z ở cuối, biểu thị múi giờ UTC.
Tương tự, vĩ độ và kinh độ phải được chuyển đổi thành loại điểm Geojson nếu bạn muốn tận dụng khả năng tìm kiếm vị trí dữ liệu tìm kiếm của MongoDB. Hai value
Lưu ý. cặp giá trị là kinh độ sau vĩ độ đó, vì điều này kép khi khiến mọi người ra ngoài. . cặp giá trị là kinh độ rồi vĩ độ, vì điều này đôi khi khiến mọi người không hiểu.
Khi bạn có dữ liệu không gian địa lý trong bộ sưu tập của mình, bạn có thể sử dụng truy vấn không gian địa lý của MongoDB để tìm kiếm dữ liệu theo vị trí. truy vấn không gian địa lý để tìm kiếm dữ liệu theo vị trí.
Nếu bạn cần chuyển đổi dữ liệu JSON của mình theo cách này, hãy xem phần trên JQ. JQ.
Nhập dữ liệu vào bộ sưu tập không trống
Khi nhập dữ liệu vào một bộ sưu tập có chứa tài liệu, giá trị sample-airbnb
8 của bạn là quan trọng. Nếu các tài liệu đến với bạn không chứa các giá trị sample-airbnb
8, thì các giá trị mới sẽ được tạo ra và gán cho các tài liệu mới khi chúng được thêm vào bộ sưu tập. Nếu tài liệu đến với bạn có chứa các giá trị sample-airbnb
8, thì chúng tôi sẽ kiểm tra đối với các tài liệu hiện có trong bộ sưu tập. Giá trị sample-airbnb
8 phải là duy nhất trong một bộ sưu tập. Theo mặc định, nếu tài liệu có giá trị sample-airbnb
8 đã tồn tại trong bộ sưu tập, thì tài liệu sẽ bị từ chối và lỗi sẽ được ghi lại. Chế độ này [mặc định] được gọi là "Chế độ chèn". Tuy nhiên, có các chế độ hoạt động khác nhau khi một tài liệu phù hợp được nhập vào bằng CSV
3. ______38 giá trị rất quan trọng. Nếu các tài liệu đến của bạn không chứa các giá trị sample-airbnb
8 thì các giá trị mới sẽ được tạo và gán cho các tài liệu mới khi chúng được thêm vào bộ sưu tập. Nếu các tài liệu đến của bạn do chứa các giá trị sample-airbnb
8 thì chúng sẽ được kiểm tra . Giá trị sample-airbnb
8 phải là duy nhất trong bộ sưu tập. Theo mặc định, nếu tài liệu đến có giá trị sample-airbnb
8 đã tồn tại trong bộ sưu tập thì tài liệu sẽ bị từ chối và lỗi sẽ được ghi lại. Chế độ này [mặc định] được gọi là "chế độ chèn". Tuy nhiên, có các chế độ khác hoạt động khác đi khi tài liệu phù hợp được nhập bằng cách sử dụng CSV
3 .
Nếu bạn được định kỳ cung cấp các tệp dữ liệu mới, bạn có thể sử dụng CSV
3 để cập nhật hiệu quả dữ liệu trong bộ sưu tập của mình. Nếu dữ liệu đầu vào của bạn được cung cấp mã định danh ổn định, hãy sử dụng trường đó làm trường sample-airbnb
8 và cung cấp tùy chọn sample-geospatial
7. Chế độ này sẽ chèn một tài liệu mới nếu giá trị sample-airbnb
8 hiện không có trong bộ sưu tập. Nếu giá trị sample-airbnb
8 đã tồn tại trong một tài liệu, thì tài liệu đó sẽ bị ghi đè bởi tài liệu mới. ______13 để cập nhật dữ liệu trong bộ sưu tập của bạn một cách hiệu quả. Nếu dữ liệu đầu vào của bạn được cung cấp một mã định danh ổn định, hãy sử dụng trường đó làm trường sample-airbnb
8 và cung cấp tùy chọn . Chế độ này sẽ chèn một tài liệu mới nếu giá trị . This mode willinsert a new document if the sample-airbnb
8 hiện không có trong bộ sưu tập. Nếu giá trị sample-airbnb
8 đã tồn tại trong tài liệu thì tài liệu đó sẽ bị ghi đè bởi dữ liệu tài liệu mới.
Nếu bạn đang nâng cấp các bản ghi không có ID ổn định, bạn có thể chỉ định một số trường sẽ sử dụng để khớp với các tài liệu trong bộ sưu tập, với tùy chọn sample-guides
0. Nếu bạn đang sử dụng nhiều tên trường, hãy tách các giá trị này bằng dấu phẩy. ______60 tùy chọn. Nếu bạn đang sử dụng nhiều tên trường, hãy phân tách các giá trị này bằng dấu phẩy.
Nếu bạn được cung cấp các tệp dữ liệu mở rộng tài liệu hiện có của bạn bằng cách bổ sung các trường mới hoặc cập nhật một số trường nhất định, bạn có thể sử dụng CSV
3 với "Chế độ hợp lý . Nếu dữ liệu đầu vào của bạn được cung cấp mã định danh ổn định, hãy sử dụng trường đó làm trường sample-airbnb
8 và cung cấp tùy chọn sample-guides
3. Chế độ này sẽ thêm một tài liệu mới nếu giá trị sample-airbnb
8 hiện không có trong bộ sưu tập. Nếu giá trị sample-airbnb
8 đã tồn tại trong một tài liệu, thì tài liệu đó sẽ bị ghi đè bởi tài liệu mới. mở rộng tài liệu hiện có của bạn bằng cách thêm các trường mới hoặc cập nhật các trường nhất định, bạn có thể sử dụng CSV
3 with "merge mode". If your input data is supplied with a stable identifier, use that field as the sample-airbnb
8 và cung cấp tùy chọn . Chế độ này sẽ chèn một tài liệu mới nếu giá trị . This mode will insert a new document if the sample-airbnb
8 hiện không có trong bộ sưu tập. Nếu giá trị sample-airbnb
8 đã tồn tại trong tài liệu thì tài liệu đó sẽ bị ghi đè bởi dữ liệu tài liệu mới.
Bạn cũng có thể sử dụng tùy chọn sample-guides
0 ở đây cũng như khi bạn đang thực hiện UPSERT, để phù hợp với tài liệu bạn muốn cập nhật. ______60 tùy chọn ở đây cũng như khi bạn thực hiện upserts, để khớp với tài liệu bạn muốn cập nhật.
Nhập CSV [hoặc TSV] vào một bộ sưu tập
Nếu bạn có các tệp CSV [hoặc các tệp TSV - chúng giống nhau về mặt khái niệm] để nhập, hãy sử dụng tùy chọn sample-guides
7 hoặc sample-guides
8 để nói CSV
3 Định dạng mong đợi nào. Cũng quan trọng là phải biết tệp CSV của bạn có hàng tiêu đề hay không - trong đó dòng đầu tiên không chứa dữ liệu - thay vào đó nó chứa tên cho mỗi cột. Nếu bạn có tiêu đề hàng, bạn nên sử dụng tùy chọn sample-mflix
0 để nói với CSV
3 rằng dòng đầu tiên không nên được nhập dưới dạng tài liệu. ______67 hoặc sample-guides
8 tùy chọn để nói CSV
3 what format to expect. Also important is to know whether your CSV file has a header row - where the first line doesn't contain data - instead it contains the name for each column. If you do có hàng tiêu đề, bạn nên sử dụng tùy chọn sample-mflix
0 . CSV
3 that the first line should not be imported as a document.
Với dữ liệu CSV, bạn có thể phải thực hiện thêm một số công việc để chú thích dữ liệu để khiến nó nhập chính xác. The main problems is
Dữ liệu CSV là "phẳng" - Không có cách nào tốt để nhúng các công cụ phụ vào một hàng của tệp CSV, vì vậy bạn có thể muốn tái cấu trúc dữ liệu để phù hợp với cấu trúc bạn muốn có trong tài liệu
Dữ liệu CSV không bao gồm các loại thông tin
Vấn đề đầu tiên là một vấn đề có thể lớn hơn. You have two option. Một là viết một lệnh để tái cấu trúc dữ liệu trước khi sử dụng CSV
3 để nhập dữ liệu. Một cách tiếp cận khác có thể là nhập dữ liệu vào MongoDB và sau đó chạy một đường ống tổng hợp để chuyển đổi dữ liệu thành cấu trúc cần thiết của bạn. trước sử dụng CSV
3 để nhập dữ liệu. Một cách tiếp cận khác có thể là nhập dữ liệu vào MongoDB, sau đó chạy một đường dẫn tổng hợp để chuyển đổi dữ liệu thành cấu trúc theo yêu cầu của bạn.
Cả hai cách tiếp cận này đều nằm ngoài phạm vi của bài đăng trên blog này. Nếu đó là điều bạn muốn thấy nhiều lời giải thích hơn, hãy truy cập các diễn đàn cộng đồng MongoDB. Diễn đàn cộng đồng MongoDB.
Thực tế là các tệp CSV không chỉ định loại dữ liệu trong mỗi trường mà có thể được giải quyết bằng cách chỉ định các loại trường khi gọi CSV
3. ______13 .
Nếu bạn không có tiêu đề hàng, thì bạn phải nói CSV
3 Tên của từng cột của bạn, để CSV
3 biết những gì sẽ gọi mỗi trường trong mỗi tài liệu sẽ được nhập. Có hai phương thức để thực hiện điều này. bạn có thể liệt kê các tên trường trên dòng lệnh với tùy chọn sample-mflix
6 hoặc bạn có thể đặt tên trường vào một tệp và con trỏ đến tùy chọn sample-mflix
7. ______13 tên của từng cột của bạn, để CSV
3 biết những gì . Có hai phương pháp để làm điều này. Bạn có thể liệt kê tên trường trên dòng lệnh bằng tùy chọn sample-mflix
6 hoặc bạn có thể đặt tên trường vào một tệp và trỏ tới tệp đó bằng . sample-mflix
7 option.
That is a long row. Trong trường hợp có rất nhiều cột, bạn nên quản lý các tên trường trong một tệp trường
Use field fileTệp trường là danh sách các cột tên, với một tên trên mỗi dòng. Vì vậy, tương đương với giá trị sample-mflix
6 từ cuộc gọi ở trên có vẻ như thế này. ______76 giá trị từ cuộc gọi ở trên trông như thế này.
Nếu bạn đặt nội dung đó vào một tệp có tên là 'field_file. txt' and after that run command after, it will use this column name as the field in MongoDB
Các tài liệu đã nhập khẩu, được xem trong La bàn MongoDB. Lưu ý rằng các trường ngày đã được nhập dưới dạng chuỗi
Nếu bạn mở la bàn và nhìn vào lược đồ cho 'Field_Option' hoặc 'FieldFile_Option', bạn sẽ thấy rằng CSV
3 đã tự động chuyển đổi các loại nguyên số thành sample_guides
3 và giữ nguyên các giá trị vĩ độ và mức độ cao . Tuy nhiên, trong một số trường hợp, MongoDB có thể đưa ra quyết định không chính xác. Trong ảnh chụp màn hình ở trên, bạn có thể thấy rằng các trường 'Thời gian bắt đầu' và 'Thời gian dừng' đã được nhập dưới dạng chuỗi. Lý tưởng nhất là chúng đã được nhập khẩu dưới dạng BSON, hiệu quả hơn để lưu trữ và lọc. ______13 đã tự động chuyển đổi các loại số nguyên thành sample_guides
3 và giữ nguyên vĩ độ và kinh độ . Tuy nhiên, trong một số trường hợp, MongoDB có thể đưa ra quyết định không chính xác. Trong ảnh chụp màn hình ở trên, bạn có thể thấy rằng các trường 'thời gian bắt đầu' và 'thời gian dừng' đã được nhập dưới dạng chuỗi. Lý tưởng nhất là chúng đã được nhập dưới dạng loại ngày BSON, hiệu quả hơn cho việc lưu trữ và lọc. sample-restaurants
1 which is a real type, or floating-point number. In some cases, though, MongoDB may make an incorrect decision. In the screenshot above, you can see that the 'starttime' and 'stoptime' fields have been imported as strings. Ideally they would have been imported as a BSON date type, which is more efficient for storage and filtering.
Trong trường hợp này, bạn sẽ muốn chỉ định loại một số hoặc tất cả các cột của bạn
Chỉ định các loại cho các cột CSV Phải nói là CSV
3 Bạn chỉ muốn định loại một số hoặc tất cả các trường của bạn, bạn nên sử dụng tùy chọn sample-restaurants
3. Cũng giống như việc sử dụng tùy chọn sample-restaurants
3, bạn cần chỉ định các loại trường của mình. Nếu bạn đang sử dụng tùy chọn sample-mflix
6, bạn có thể thêm loại thông tin vào giá trị đó, nhưng tôi khuyên bạn nên thêm loại dữ liệu vào trường tệp. Bằng cách này, nó sẽ dễ đọc và duy trì hơn, và đó là những gì tôi sẽ chứng minh ở đây. ______13 bạn muốn chỉ định loại của một số hoặc tất cả các trường của mình, bạn nên sử dụng sample-restaurants
3 option. As well as using the ______83 , bạn sẽ cần chỉ định loại trường của mình. Nếu bạn đang sử dụng tùy chọn sample-mflix
6 , bạn có thể thêm thông tin loại vào giá trị đó, nhưng tôi thực sự khuyên bạn nên thêm dữ liệu loại vào tệp trường. Bằng cách này, nó sẽ dễ đọc và dễ bảo trì hơn, và đó là những gì tôi sẽ chứng minh ở đây.
Tôi đã tạo một tệp có tên sample-restaurants
6 và nhập sau. ______86 và nhập thông tin sau.
by because CSV
3 đã làm đúng với hầu hết các trường, tôi đã đặt chúng thành sample-restaurants
8 - thông tin loại xuất hiện sau một khoảng thời gian [sample-restaurants
9]. Hai trường thời gian, sample-analytics
7 và sample-analytics
8 đã được nhập không chính xác dưới dạng chuỗi, vì vậy trong những trường hợp này, tôi chỉ định rằng chúng nên được coi là loại sample-supplies
2. Nhiều loại có đối số bên trong dấu ngoặc đơn. Trong trường hợp loại sample-supplies
2, nó hy vọng các đối số sẽ là một ngày được định dạng theo cùng một cách bạn mong đợi các giá trị của cột được định dạng. Xem tài liệu tham khảo để biết thêm chi tiết. ______13 đã làm đúng với hầu hết các trường, tôi đã đặt chúng thành sample-restaurants
8 - the type information comes after a period [sample-restaurants
9]. The two time fields, ______47 và sample-analytics
8 đã được nhập không chính xác dưới dạng chuỗi . Nhiều loại lấy đối số bên trong dấu ngoặc đơn. Trong trường hợp của loại sample-supplies
2 type. Many of the types take arguments inside the parentheses. In the case of the sample-supplies
2 , đối số sẽ là ngày formatted in the same way you expect the column's values to be formatted. See the tài liệu tham khảo để biết thêm chi tiết.
Hiện tại, dữ liệu có thể được nhập vào cuộc gọi sau khi đến CSV
3. ______13 .
And left part
Hy vọng bây giờ bạn có một ý tưởng tốt về cách sử dụng CSV
3 và về mức độ linh hoạt của nó. Tôi đã không bao gồm gần như tất cả các tùy chọn có thể được cung cấp cho CSV
3, tuy nhiên, chỉ là những tùy chọn quan trọng nhất. Những người khác mà tôi thấy hữu ích thường xuyên là. ______13 và mức độ linh hoạt của nó. Tôi chưa đề cập đến gần như tất cả các tùy chọn có thể cung cấp cho CSV
3 , tuy nhiên, chỉ những tùy chọn quan trọng nhất. Những thứ khác tôi thấy hữu ích thường xuyên là.
sample-supplies
7 Bỏ qua các trường hoặc cột có giá trị trống. sample-supplies
8 Thả bộ sưu tập trước khi nhập tài liệu mới. Điều này đặc biệt hữu ích trong quá trình phát triển, nhưng sẽ làm mất dữ liệu nếu bạn vô tình sử dụng nó. sẽ mất dữ liệu nếu bạn vô tình sử dụng. sample-supplies
9 Một tùy chọn khác hữu ích trong quá trình phát triển, điều này khiến CSV
3 dừng lại ngay khi xảy ra lỗi. CSV
3 dừng ngay lập tức khi có lỗi xảy raMột trong những lợi ích chính của các chương trình dòng lệnh là chúng được thiết kế để làm việc với các chương trình dòng lệnh khác nhằm cung cấp nhiều quyền lực hơn. Có một vài chương trình dòng lệnh mà tôi đặc biệt khuyến nghị bạn nên xem. CSV
2 Một công cụ thao tác JSON và CSV
9 Một công cụ tương tự để làm việc với các tệp CSV. các chương trình dòng lệnh khác để cung cấp thêm sức mạnh. Có một vài chương trình dòng lệnh mà tôi đặc biệt khuyên bạn nên xem qua. CSV
2 công cụ thao tác JSON và CSV
9 công cụ tương tự để làm việc với .
JQ is a handle for JSON data. Nó kết hợp một ngôn ngữ lọc và kịch bản mạnh mẽ để lọc, thao tác và thậm chí tạo dữ liệu JSON. Một hướng dẫn đầy đủ về cách sử dụng JQ nằm ngoài phạm vi hướng dẫn này, nhưng để cung cấp cho bạn một bản tóm tắt ngắn gọn
Nếu bạn tạo tập lệnh JQ có tên CSV
03 chứa các mục sau. ______103 chứa các nội dung sau.
Hiện tại bạn có thể gửi dữ liệu JSON mẫu thông qua lệnh này để sửa đổi các trường sample-analytics
7 và sample-analytics
8 để chúng được nhập vào MongoDB dưới dạng các loại CSV
06. Các trường ______47 và sample-analytics
8 để chúng sẽ được nhập vào MongoDB dưới dạng < . CSV
06 types:
Điều này có thể được sử dụng trong một đoạn đường ống nhiều giai đoạn, trong đó dữ liệu được đưa vào CSV
3 thông qua CSV
2. ______13 thông qua CSV
2 .
Công cụ CSV
2 có thể hơi khó hiểu lúc đầu, nhưng khi bạn bắt đầu hiểu ngôn ngữ hoạt động như thế nào, nó rất mạnh và rất nhanh. Tôi đã cung cấp một ví dụ SCRIPT JQ phức tạp hơn trong dữ liệu dữ liệu repo dữ liệu, được gọi là CSV
10. Kiểm tra nó để biết thêm ý tưởng và tài liệu đầy đủ trên trang web JQ. Công cụ ______12 ban đầu có thể hơi khó hiểu, nhưng một khi bạn bắt đầu hiểu cách thức hoạt động của ngôn ngữ, thì công cụ này rất mạnh và rất nhanh. Tôi đã cung cấp một ví dụ tập lệnh JQ phức tạp hơn trong repo dữ liệu mẫu GitHub, được gọi là CSV
10 . Check it out for more ideas, and the full documentation on the trang web JQ.
Theo cùng một cách mà CSV
2 là một công cụ để lọc và điều khiển dữ liệu JSON, CSV
9 là một bộ sưu tập các công cụ nhỏ để lọc và thao tác dữ liệu CSV. Một số công cụ, trong khi hữu ích theo cách riêng của chúng, không có khả năng hữu ích khi kết hợp với CSV
3. Các công cụ như CSV
14 lọc các hàng tệp CSV dựa trên các biểu thức và CSV
15 có thể xóa toàn bộ cột từ đầu vào CSV, là các công cụ hữu ích để cắt và cắt dữ liệu của bạn trước khi cung cấp nó cho CSV
3. ______12 là một công cụ để lọc và thao tác dữ liệu JSON, CSV
9 là một . Một số công cụ, mặc dù hữu ích theo cách riêng của chúng, nhưng không chắc sẽ hữu ích khi kết hợp với CSV
3 . Các công cụ như CSV
14 lọc các hàng của tệp csv dựa trên các biểu thức và CSV
15 . CSV
3.
Kiểm tra tài liệu CSVKIT để biết thêm thông tin về cách sử dụng bộ sưu tập công cụ này. tài liệu csvkit để biết thêm thông tin về cách sử dụng bộ công cụ này.
Có những công cụ khác mà bạn biết sẽ hoạt động tốt với CSV
3 không? . ______13 ? . CSV
18 to handle tabular data before importing into MongoDB? Let us know on the community forums!
Kết luận
Đó là một sai lầm phổ biến khi viết mã tùy chỉnh để nhập dữ liệu vào MongoDB. Tôi hy vọng tôi đã chứng minh CSV
3 mạnh như thế nào là một công cụ để nhập dữ liệu vào MongoDB một cách nhanh chóng và hiệu quả. Kết hợp với các công cụ dòng lệnh đơn giản khác, đó là một cách nhanh chóng và linh hoạt để nhập dữ liệu của bạn vào MongoDB. ______13 là một công cụ để nhập dữ liệu vào MongoDB một cách nhanh chóng và hiệu quả. Kết hợp với các công cụ dòng lệnh đơn giản khác, đây là cách nhanh chóng và linh hoạt để nhập dữ liệu của bạn vào MongoDB.
Làm cách nào để nhập toàn bộ cơ sở dữ liệu vào MongoDB?
Để nhập dữ liệu vào cơ sở dữ liệu MongoDB, bạn có thể sử dụng Mongoimport để nhập bộ sưu tập dữ liệu cụ thể hoặc bạn có thể sử dụng MongoRestore để nhập bản sao lưu cơ sở dữ liệu đầy đủ nhị phân . Tệp cơ sở dữ liệu được xuất phải được lưu vào bộ lưu trữ cục bộ trên cùng một máy với máy khách của bạn. sử dụng mongorestore để nhập bản sao lưu cơ sở dữ liệu đầy đủ nhị phân [BSON] . Tệp cơ sở dữ liệu đã xuất phải được lưu trữ cục bộ trên cùng một máy với máy khách của bạn.
Làm cách nào để kết nối với một công cụ cơ sở dữ liệu trong Atlas MongoDB?
Nhấp vào Kết nối. .
Chọn kết nối ứng dụng của bạn
Chọn phiên bản điều khiển và trình điều khiển của bạn
Sao chép chuỗi kết nối được tạo
Danh sách trắng Địa chỉ IP của bạn
click to Add the IP address at
Bạn đang kết nối từ một địa chỉ IP khác, thông qua VPN hoặc nhận lỗi?
Đặt tên cho kết nối của bạn và nhấp vào nút từ URI
Atlas có thể làm việc với các cơ sở dữ liệu khác không?
Một dịch vụ được quản lý cơ sở dữ liệu toàn cầu dựa trên nguồn gốc nguồn mở được thiết kế để xử lý tất cả sự phức tạp của công việc phát triển khai, quản lý và phát triển bệnh, MongoDB Atlas là . tương thích với các nhà cung cấp dịch vụ đám mây bao gồm Amazon Web Services [AWS], Microsoft Azure và Google Cloud Platform