Phân tích bản đồ mongodb

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

Phân tích bản đồ mongodb

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

Hướng dẫn how do i import a database into mongodb atlas? - làm cách nào để nhập cơ sở dữ liệu vào tập bản đồ mongodb?

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ả

CSV0

Chứa bộ dữ liệu dịch vụ đào tạo MongoDB

CSV1

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ư CSV2. ______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 CSV3. 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 CSV3. 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 CSV3 . 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

CSV3

CSV3 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ự. CSV3 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ư CSV2 để thao tác JSON hoặc CSV9 để thao tác CSV hoặc thậm chí cả sample_guides0 để 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ư CSV2 for JSON manipulation, or CSV9 for CSV manipulation, or even sample_guides0 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 CSV3 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, CSV3 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_guides3 hoặc sample_guides4. 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, CSV3 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_guides3 or sample_guides4. This behaviour can be overridden with the use of some flags, and you can specify types if you want to. On top of that, CSV3 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

CSV3

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_guides7. ______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_guides8. 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_guides8 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-airbnb0 và sample-airbnb1 để 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-airbnb0 sample-airbnb1< . 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-airbnb1, thì CSV3 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 đó CSV3 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-airbnb4. 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-airbnb5. 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-airbnb6 để 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-airbnb7. 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.

Hướng dẫn how do i import a database into mongodb atlas? - làm cách nào để nhập cơ sở dữ liệu vào tập bản đồ mongodb?

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-airbnb8 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-airbnb8 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-airbnb8 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-airbnb6, 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-analytics1. Đ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-analytics1 . Đ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-analytics2 vào thư mục chứa .

Như trước đây, MongoDB đã tạo ra một sample-airbnb8 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-airbnb6, sử dụng tùy chọn sample-analytics5. ______36 tùy chọn, sử dụng tùy chọn sample-analytics5 .

Nếu bạn quên thêm tùy chọn --JsonArray, CSV3 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-analytics7 và sample-analytics8 phải là các loại "ngày" chứ không phải "chuỗi". ______47 sample-analytics8 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-airbnb8 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-airbnb8, 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-airbnb8, 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-airbnb8 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-airbnb8 đã 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 CSV3. ______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-airbnb8 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-airbnb8 thì chúng sẽ được kiểm tra . Giá trị sample-airbnb8 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-airbnb8 đã 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 CSV3 .

Cập nhật hồ sơ hiện có

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 CSV3 để 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-airbnb8 và cung cấp tùy chọn sample-geospatial7. Chế độ này sẽ chèn một tài liệu mới nếu giá trị sample-airbnb8 hiện không có trong bộ sưu tập. Nếu giá trị sample-airbnb8 đã 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-airbnb8 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-airbnb8 hiện không có trong bộ sưu tập. Nếu giá trị sample-airbnb8 đã 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-guides0. 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.

Hợp nhất dữ liệu vào các hồ sơ hiện có

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 CSV3 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-airbnb8 và cung cấp tùy chọn sample-guides3. Chế độ này sẽ thêm một tài liệu mới nếu giá trị sample-airbnb8 hiện không có trong bộ sưu tập. Nếu giá trị sample-airbnb8 đã 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 CSV3 with "merge mode". If your input data is supplied with a stable identifier, use that field as the sample-airbnb8 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-airbnb8 hiện không có trong bộ sưu tập. Nếu giá trị sample-airbnb8 đã 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-guides0 ở đâ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-guides7 hoặc sample-guides8 để nói CSV3 Đị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-mflix0 để nói với CSV3 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-guides8 tùy chọn để nói CSV3 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-mflix0 . CSV3 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 CSV3 để 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 CSV3 để 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 CSV3. ______13 .

Chỉ định các loại trường

Nếu bạn không có tiêu đề hàng, thì bạn phải nói CSV3 Tên của từng cột của bạn, để CSV3 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-mflix6 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-mflix7. ______13 tên của từng cột của bạn, để CSV3 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-mflix6 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-mflix7 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 file

Tệ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-mflix6 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

Hướng dẫn how do i import a database into mongodb atlas? - làm cách nào để nhập cơ sở dữ liệu vào tập bản đồ 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 CSV3 đã tự động chuyển đổi các loại nguyên số thành sample_guides3 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_guides3 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-restaurants1 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à CSV3 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-restaurants3. Cũng giống như việc sử dụng tùy chọn sample-restaurants3, 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-mflix6, 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-restaurants3 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-mflix6 , 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-restaurants6 và nhập sau. ______86 và nhập thông tin sau.

by because CSV3 đã làm đúng với hầu hết các trường, tôi đã đặt chúng thành sample-restaurants8 - thông tin loại xuất hiện sau một khoảng thời gian (sample-restaurants9). Hai trường thời gian, sample-analytics7 và sample-analytics8 đã đượ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-supplies2. Nhiều loại có đối số bên trong dấu ngoặc đơn. Trong trường hợp loại sample-supplies2, 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-restaurants8 - the type information comes after a period (sample-restaurants9). The two time fields, ______47 sample-analytics8 đã đượ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-supplies2 type. Many of the types take arguments inside the parentheses. In the case of the sample-supplies2 , đố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 CSV3. ______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 CSV3 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 CSV3, 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 CSV3 , 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à.

Quyền muaSự kiện mô tả sample-supplies7 Bỏ qua các trường hoặc cột có giá trị trống. sample-supplies8 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-supplies9 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 CSV3 dừng lại ngay khi xảy ra lỗi. CSV3 dừng ngay lập tức khi có lỗi xảy ra

Mộ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. CSV2 Một công cụ thao tác JSON và CSV9 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. CSV2 công cụ thao tác JSON và CSV9 công cụ tương tự để làm việc với .

jq

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 CSV03 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-analytics7 và sample-analytics8 để chúng được nhập vào MongoDB dưới dạng các loại CSV06. Các trường ______47 sample-analytics8 để chúng sẽ được nhập vào MongoDB dưới dạng < . CSV06 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 CSV3 thông qua CSV2. ______13 thông qua CSV2 .

Công cụ CSV2 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à CSV10. 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à CSV10 . Check it out for more ideas, and the full documentation on the trang web JQ.

CSVKIT

Theo cùng một cách mà CSV2 là một công cụ để lọc và điều khiển dữ liệu JSON, CSV9 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 CSV3. Các công cụ như CSV14 lọc các hàng tệp CSV dựa trên các biểu thức và CSV15 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 CSV3. ______12 là một công cụ để lọc và thao tác dữ liệu JSON, CSV9 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 CSV3 . Các công cụ như CSV14 lọc các hàng của tệp csv dựa trên các biểu thức và CSV15 . CSV3.

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 CSV3 không? . ______13 ? . CSV18 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 CSV3 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