Xem thảo luận
Cải thiện bài viết
Lưu bài viết
Xem thảo luận
Cải thiện bài viết
Lưu bài viết
Đọc is a cross-platform, document-oriented database that works on the concept of collections and documents. MongoDB offers high speed, high availability, and high scalability.
Bàn luận
MongoDB là một cơ sở dữ liệu theo hướng đa nền tảng, hướng đến tài liệu, hoạt động trên khái niệm về các bộ sưu tập và tài liệu. MongoDB cung cấp tốc độ cao, tính sẵn sàng cao và khả năng mở rộng cao.
Tìm nạp dữ liệu từ MongoDBThis method is used to fetch data from collection in mongoDB. It returns first first occurrence.
Syntax :
find_one[]
Example:
Pymongo cung cấp các phương pháp khác nhau để tìm nạp dữ liệu từ MongoDB. Hãy cùng nhìn thấy họ từng cái một.
Python3
1] Tìm một: Phương pháp này được sử dụng để tìm nạp dữ liệu từ bộ sưu tập trong MongoDB. Nó trả về lần đầu tiên xuất hiện. & Nbsp; cú pháp:
Cơ sở dữ liệu mẫu:
import
pymongo
db
=
client[
"database"
find[]8
find[]9
find[]
0____6 find[]
2find[]
3]
:
find[]
5=
find[]
7For all occurrences in the selection, use find[] method. It works like Select * query of SQL.
Đầu ra: :
find[]
Example:
Python3
1] Tìm một: Phương pháp này được sử dụng để tìm nạp dữ liệu từ bộ sưu tập trong MongoDB. Nó trả về lần đầu tiên xuất hiện. & Nbsp; cú pháp:
Cơ sở dữ liệu mẫu:
import
pymongo
db
=
client[
"database"
find[]0____6
find[]2
find[]3
]
import
9
find[]8
pymongo
1Output:
find[]
5=
find[]
7 and find[] accepts an optional filter parameter that selects which documents to include in the result set. Can be an empty document to include all documents.
3]
Fetching only specific fields: If you want to fetch only some fields then in the find method pass the first parameter as {} and second parameter as 1 for those field that you want to fetch and 0 for those you don’t want to fetch.
Syntax:
find[{},{field_data:bool}]
Example:
Python3
1] Tìm một: Phương pháp này được sử dụng để tìm nạp dữ liệu từ bộ sưu tập trong MongoDB. Nó trả về lần đầu tiên xuất hiện. & Nbsp; cú pháp:
Cơ sở dữ liệu mẫu:
import
pymongo
db
=
client[
"database"
=
5=
6db
8=
3=
0client[
0db
8=
3client[
3
find[]0____6
find[]2
find[]3
]
import
9
find[]8
pymongo
1Output:
Một lợi ích tuyệt đẹp của việc có MongoDB với Thư viện Python, Pandas là nó cung cấp cho bạn khả năng xuất các tài liệu MongoDB ở các định dạng khác nhau. Điều này bao gồm việc có thể xuất sang MongoDB CSV, Xuất MongoDB JSON và Xuất MongoDB HTML. Khi bạn quản lý tài liệu MongoDB, Pymongo, xuất khẩu tài liệu MongoDB Python là một nhiệm vụ mà bạn sẽ muốn hoàn thành một cách thường xuyên. Hướng dẫn này giải thích cách xuất các tài liệu MongoDB dưới dạng các tệp CSV, HTML và JSON trong Python bằng gấu trúc. Bắt đầu tìm hiểu một cách dễ dàng để tổ chức, phân tích dữ liệu theo định dạng tệp bạn chọn. Nếu bạn muốn bỏ qua hướng dẫn vì bạn biết những điều cơ bản về cách xuất Python tài liệu MongoDB, hãy truy cập mã. MongoDB - Cài đặt và chạy máy chủ. Ngoài ra, truy cập vỏ Mongo từ cửa sổ đầu cuối và nhập Python 3 - Bạn có thể sử dụng Trình quản lý gói PIP để nâng cấp lên phiên bản mới nhất. > Lưu ý: Các ví dụ trong hướng dẫn này dựa trên Python 3, không phải là phiên bản sớm hơn.NOTE: The
examples in this tutorial are based on Python 3, not earlier versions.
1 PIP3 Cài đặt-nâng cấp PIPinstall --upgrade pipGiới thiệu
Phương pháp nhà văn đối tượng gấu trúc
Phương pháp "database"
1"database"
2"database"
3"database"
4"database"
5"database"
6"database"
7"database"
8"database"
9]
0]
1]
2Điều kiện tiên quyết
]
3.
- Tạo một bộ sưu tập các tài liệu để thử các ví dụ trong bài học này. Bạn sẽ muốn thử nghiệm và thực hiện một số cuộc gọi API để trả về một vài tài liệu.
Cài đặt Gói Python Pandas
- Từ một cửa sổ thiết bị đầu cuối, sử dụng ____94 và cài đặt tất cả các gói Panda Python cần thiết là các thư viện và phụ thuộc. Bạn cũng có thể sử dụng
]
4 từ cửa sổ nhắc lệnh thay vì cửa sổ đầu cuối.
Cài đặt trình điều khiển pymongo MongoDB
- Có quyền truy cập vào cơ sở dữ liệu của bạn và bộ sưu tập MongoDB bằng cách cài đặt Thư viện Python Trình điều khiển Pymongo
Nhận thư viện Pandas bằng cách sử dụng ]
4
- Các ví dụ trong hướng dẫn này sử dụng thư viện Pandas. Sử dụng
]
4 để cài đặt nó.
Nhập các thư viện bổ sung bao gồm gấu trúc và trình điều khiển pymongo
Nhập thư viện Python cho
]
8 vì bạn có thể cần xuất các tệp ở định dạng đó.Nhập bất kỳ thư viện nào khác cho các định dạng xuất bạn muốn sử dụng.
Nhập các phương pháp cho thư viện gấu trúc
- Bạn có thể sử dụng bí danh thư viện Pandas
]
9 để nhập thư viện. Chúng tôi sử dụng tênfind[]
00 hoàn chỉnh ở đây trong hướng dẫn này vì lợi ích của sự hiểu biết trực quan tốt hơn.
Nhập thư viện lớp find[]
01
- Vì bạn sẽ tạo các phiên bản của các bộ sưu tập và cơ sở dữ liệu MongoDB, hãy nhập lớp
find[]
01.
1 | từ nhập khẩu pymongo MongoClient pymongo import MongoClient |
Tạo một ví dụ find[]
01 mới
Xây dựng một phiên bản khách hàng mới của
find[]
01Tiếp theo, kết nối với máy chủ MongoDB nơi bạn đặt bộ sưu tập tài liệu.
12 | # Xây dựng một phiên bản khách hàng mới của MongoLient Mongo_Client = Mongoclient ['Localhost', 27017] |
- Xây dựng một thể hiện cơ sở dữ liệu và bộ sưu tập đối tượng. Xác minh rằng bộ sưu tập bao gồm các tài liệu.
123 | # Tạo các đối tượng cơ sở dữ liệu và bộ sưu tập mới db = Mongo_Client.some_database col = db.some_collection |
Lấy tài liệu với một cuộc gọi API
- Để trả về mọi tài liệu trong bộ sưu tập MongoDB được chỉ định của bạn, hãy sử dụng phương thức
find[]
05 để thực hiện cuộc gọi API.
> Lưu ý: Bỏ qua đặt bất kỳ tham số nào trong cuộc gọi nếu bạn muốn tất cả các tài liệu. Các kết quả sẽ nằm trong một đối tượng
find[]06.NOTE: Skip putting any parameters in the call if you want all the documents. The results will be in a
find[]06 object.
12 | # Thực hiện cuộc gọi API đến Máy chủ MongoDB bằng cách sử dụng Trình con trỏ đối tượng Bộ sưu tập = col.find [] |
Làm thế nào để biết số lượng tài liệu với phương pháp find[]
05
- Có hai cách chính để có được số lượng tài liệu MongoDB. Bạn có thể sử dụng: [1] Phương thức
find[]
08 cho tổng số tài liệu trong một bộ sưu tập hoặc [2] hàmfind[]
09, là một python tích hợp, để nhận số lượng tài liệu được trả về sau khi bạn thực hiện cuộc gọi API.
Vượt qua một từ điển trống [find[]
10] bằng phương pháp find[]
08 để lấy tất cả các tài liệu của bộ sưu tập
12 | # In tổng số tài liệu trong bộ sưu tập MongoDB in ["Tổng số tài liệu trong bộ sưu tập:", col.count_document [{}]]] |
Nhận số lượng tài liệu được trả về với chức năng find[]
09 Python
12 | # In tổng số tài liệu được trả lại trong bản in bộ sưu tập MongoDB ["Tổng số tài liệu được trả lại bằng Find []:", Len [Danh sách [con trỏ]]] |
Nhận các tài liệu MongoDB với chức năng Python find[]
13
- Sau khi bạn thực hiện cuộc gọi API
find[]
05 và nhận đối tượng con trỏ pymongo, chuyển nó đến chức năngfind[]
13 để truy cập tất cả các tài liệu.
1 | Mongo_Docs = Danh sách [Trình con trỏ]= list[cursor] |
Giới hạn xuất khẩu tài liệu MongoDB ngay từ đầu
- Bởi vì các bộ sưu tập lớn ít nhất 100 tài liệu mất một thời gian để lặp lại, hãy bắt đầu xuất chỉ một vài kết quả.
12 | # Chỉ nhận được 50 tài liệu đầu tiên trong danh sách Mongo_Docs = Mongo_Docs [: 50] |
Thực hiện cuộc gọi API find[]
05 để nhận danh sách bộ sưu tập MongoDB và sau đó thực hiện
Sử dụng phương thức find[]
17 để vượt qua đối tượng find[]
18
- Bước tiếp theo là thực hiện chuyển đổi
find[]
19 từ các tài liệu MongoDB. *> Lưu ý: Các đối tượngfind[]
20 là một chiều với hỗ trợ lập chỉ mục. Điều này khen ngợi các yêu cầu lập chỉ mục tài liệu MongoDB.NOTE:find[]
20 objects are one-dimensional with indexing support. This compliments MongoDB document indexing requirements.
12 | series_obj = pandas.series [{"A Key": "a value"}] in ["series_obj:", type [series_obj]]= pandas.Series[{"a key":"a value"}] |
Numpy sườn find[]
21 có phần giống như đối tượng được trả về từ phương thức find[]
17.
Nhận một đối tượng gấu trúc find[]
20 find[]
24 và thay đổi nó
Bạn có thể thay đổi đối tượng
find[]
20 bằng cách truyền nó và đảm bảo cả nó và khớp số phần tử chỉ mục đối tượngfind[]
20.Ví dụ dưới đây hiển thị cả đối tượng và chỉ mục
find[]
20 với số phần tử của một người.
123 | series_obj = pandas.series [{"one": "index"}] series_obj.index = ["one"] print ["index:", series_obj.index]= pandas.Series[ {"one":"index"} ] |
Lưu trữ tài liệu trong một đối tượng find[]
28
Một container lưu trữ đa chiều tuyệt vời mô tả đối tượng gấu trúc
find[]
29. Nó có thể giữ các mảng numpy, các đối tượngfind[]
20 vàfind[]
29 và từ điển khác.Tạo một đối tượng
find[]
29 trống. Danh sáchfind[]
33 cũng phải trống.
12 | # Tạo một DataFrame trống OBJ để lưu trữ các đối tượng chuỗi tài liệu = pandas.dataframe [cột = []] |
> Lưu ý: Để thuận tiện cho bạn, phương pháp
find[]34 là một phần tích hợp của lớp
find[]29. Nó rất dễ dàng để thêm các mảng đối tượng mới vào lớp.NOTE: For your convenience, the
find[]34 method is a built-in part of the
find[]29 class. It’s easy to add new object arrays to the class.
Thời gian để lặp qua chức năng find[]
36 và sau đó là PANDAS MỚI find[]
20 tạo đối tượng
- Hàm
find[]
36 trong Python là một cách nhanh chóng để hoàn thành phép lặp MongoDB.
12 | # lặp lại danh sách các tài liệu dictoDB cho num, doc inenumerate [Mongo_docs]: |
Chuyển đổi sang find[]
39 từ find[]
40
- Tạo một chuỗi Python của ID tài liệu ID. Đó là tất cả những gì bạn cần bây giờ. Lưu ID mặc dù để bạn có quyền truy cập vào sau này.
12345 | # Chuyển đổi ObjectID [] thành str doc ["_ id"] = str [doc ["_ id"]]] # Nhận tài liệu _id từ Dict Doc_id = doc ["_ id"] |
Sau khi xây dựng một đối tượng find[]
20, hãy nối nó
Từ MongoDB, xây dựng một đối tượng
find[]
20 và đặt tên giống như chuỗi củafind[]
43.Tiếp theo, sử dụng phương thức
find[]
34 để thêm nó vào mảngfind[]
29.
12345 | # Tạo một loạt OBJ từ loạt DictoDB Dicter_obj = pandas.series [doc, name = doc_id] # Nối chuỗi MongoDB OBJ vào DataFrame OBJ Docs = docs.append [series_obj] |
Bây giờ bạn có các đối tượng gấu trúc
find[]20 đã được chuyển đổi từ tất cả các tài liệu. Đó là kết quả mà bạn sẽ có khi lặp lại kết thúc.
Sử dụng các phương pháp tích phân Pandas để xuất các định dạng tệp đa dạng
- Các phương pháp cố hữu của các đối tượng
find[]
20 vàfind[]
29 cho phép xuất hợp lý các định dạng tệp khác nhau bao gồm"database"
5]
1 vàfind[]
51.
Quyết định cách bạn muốn vượt qua phương thức cuộc gọi
Để lưu dữ liệu của tài liệu vào một thư mục cụ thể, hãy xác định đường dẫn bằng cách thêm một đối số.
Nếu bạn không vượt qua một đối số, nó sẽ trả về dữ liệu của tài liệu dưới dạng một chuỗi được định dạng.
Dữ liệu tài liệu MongoDB được trả về dưới dạng chuỗi find[]
52, ]
8 hoặc find[]
54.
- Các ví dụ dưới đây cho thấy cách sử dụng chức năng
find[]
55 để xuất tài liệu MongoDB JSON và xuất CSV MongoDB.
1234567 | # Có gấu trúc trả về chuỗi JSON của các tài liệu json_export = docs.to_json []# trả về in dữ liệu json ["\ njson dữ liệu:" # Xuất tài liệu MongoDB sang CSV CSV_Export = docs.to_csv [sep = ","] |
- Khi bạn muốn xuất MongoDB HTML, bạn có thêm một tùy chọn. Bạn có thể sử dụng phương pháp Pandas,
find[]
56 để tạo chuỗifind[]
57. Điều này sẽ xuất dữ liệu vào bảng HTML tài liệu MongoDB giống như ví dụ dưới đây.
1234567891011 | # Tạo IO HTML Chuỗi Nhập IO HTML_STR = IO.Stringio [] # Xuất dưới dạng tài liệu HTML.TO_HTML [BUF = html_str, classes = 'bảng steped']# in ra bản in bảng HTML [html_str.getValue []] |
Xuất dưới dạng CSV, JSON hoặc HTML từ dữ liệu của tài liệu MongoDB
- Sau khi bạn tiến hành một tài liệu MongoDB xuất khẩu Python, định dạng chuyển đổi là tự động cho bất kỳ loại tệp nào bạn chọn dựa trên phương thức cuộc gọi.
12345678 | # Xuất các tài liệu MongoDB dưới dạng tài liệu tệp JSON.TO_JSON ["Object_rocket.json"] # Xuất tài liệu MongoDB sang tài liệu tệp CSV.TO_CSV ["Object_rocket.csv", ","]# CSV được phân định bởi dấu phẩy # Lưu tài liệu MongoDB dưới dạng tài liệu bảng HTML.TO_HTML ["Object_rocket.html"] |
> Lưu ý: Hãy nhớ nêu đường dẫn tệp để đặt tệp thư mục đã chọn. Nếu không, nó ở trong cùng thư mục với tập lệnh của bạn.NOTE: Remember to state the file path to place the file your chosen directory. Otherwise, it stays in the same directory as your script.
Sự kết luận
Hướng dẫn này đã giải thích các tài liệu MongoDB Pymongo. Nó đã đi qua cụ thể làm thế nào để chuyển đổi các tài liệu MongoDB bằng cách xuất theo nhiều định dạng thường được sử dụng. Tại một số điểm trong trách nhiệm quản lý tài liệu MongoDB hàng ngày của bạn, bạn sẽ cần xuất tài liệu MongoDB CSV, Xuất MongoDB JSON hoặc Xuất tài liệu MongoDB HTML hoặc dưới dạng tệp.
Trong số những điều khác về cách xuất python mongDB, bạn đã phát hiện ra cách cấu trúc lưu trữ giống như container
find[]29 của Pandas giữ các đối tượng
find[]20 của bạn. Nắm vững các kỹ thuật xem tài liệu MongoDB Python trong các định dạng bạn yêu cầu tiết kiệm thời gian của bạn khi bạn cần phân tích, sắp xếp và thao tác dữ liệu tài liệu của bạn. Bây giờ bạn đã sẵn sàng để tự tin xuất tài liệu MongoDB Python.
Xem dữ liệu của tài liệu MongoDB bằng cách mở thư mục giống như tập lệnh Python
Chỉ là mã
Tại đây, toàn bộ tập lệnh về cách xuất các tài liệu Python MongoDB dưới dạng tài liệu MongoDB CSV, MongoDB Tài liệu JSON và tệp MongoDB HTML.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 | #!/usr/bin/env python3 #-*-mã hóa: UTF-8-*- # Nhập lớp Mongoclient từ Pymongo Nhập khẩu MongoClient # Nhập Pandas Thư viện Pandas # Những thư viện này là nhập khẩu JSON nhập khẩu tùy chọn # Xây dựng một phiên bản khách hàng mới của MongoLient Mongo_Client = Mongoclient ['Localhost', 27017] # Tạo cơ sở dữ liệu mới và phiên bản thu thập db = Mongo_Client.some_database col = db.some_collection # Thời gian bắt đầu của tập lệnh start_time = Time.time [] # Thực hiện cuộc gọi API đến Máy chủ MongoDB Trình con trỏ = col.find [] # Trích xuất danh sách các tài liệu từ con trỏ obj Mongo_docs = list [con trỏ] # Hạn chế số lượng tài liệu để xuất Mongo_docs = Mongo_Docs [: 50]# Slice Danh sách in ["Tổng số tài liệu:", Len [Mongo_Docs]] # Tạo một khung dữ liệu trống để lưu trữ tài liệu tài liệu = pandas.dataframe [cột = []] # lặp lại danh sách các tài liệu dictoDB cho num, doc inenumerate [Mongo_docs]: # Chuyển đổi ObjectID [] thành str doc ["_ id"] = str [doc ["_ id"]]] # Nhận tài liệu _id từ Dict Doc_id = doc ["_ id"] # Tạo một loạt OBJ từ loạt DictoDB Dicter_obj = pandas.series [doc, name = doc_id] # Nối chuỗi MongoDB OBJ vào DataFrame OBJ Docs = docs.append [series_obj] # Chỉ in mỗi tài liệu thứ 10 nếu num % 10 == 0: in [loại [doc]] in [loại [doc ["_ id"]]] in [num, "-", doc, "\ n"] "Xuất các tài liệu MongoDB sang các định dạng tệp khác nhau" in ["\ nexporting pandas đối tượng sang các loại tệp khác nhau."] In ["DataFrame Len:", Len [Docs]] # Xuất các tài liệu MongoDB dưới dạng tài liệu tệp JSON.TO_JSON ["Object_rocket.json"] # Có gấu trúc trả về chuỗi JSON của các tài liệu json_export = docs.to_json []# trả về in dữ liệu json ["\ njson dữ liệu:" # Xuất tài liệu MongoDB sang tài liệu tệp CSV.TO_CSV ["Object_rocket.csv", ","]# CSV được phân định bởi dấu phẩy # Xuất tài liệu MongoDB sang CSV CSV_Export = docs.to_csv [sep = ","] # Tạo IO HTML Chuỗi Nhập IO HTML_STR = IO.Stringio [] # Xuất dưới dạng HTML Docs.TO_HTML [BUF = html_str, classes = 'bảng sọc bảng']] # In ra bản in bảng HTML [html_str.getValue []] # Lưu tài liệu MongoDB dưới dạng tài liệu bảng HTML.TO_HTML ["Object_rocket.html"] print ["\ n \ ntime đã qua:", thời gian.time []-start_time] ["\n\ntime elapsed:", time.time[]-start_time] |
Phi công nền tảng Objectrocket miễn phí!
Hãy thử được quản lý đầy đủ gián, Elaticsearch, MongoDB, PostgreSQL [beta] hoặc redis.
Bắt đầu