Python NoQuery JSON

Khi ngày càng có nhiều dữ liệu có sẵn dưới dạng phi cấu trúc hoặc bán cấu trúc, nhu cầu quản lý chúng thông qua cơ sở dữ liệu NoSql tăng lên. Python cũng có thể tương tác với cơ sở dữ liệu NoSQL theo cách tương tự như tương tác với cơ sở dữ liệu Quan hệ. Trong chương này, chúng ta sẽ sử dụng python để tương tác với MongoDB dưới dạng cơ sở dữ liệu NoSQL. Trong trường hợp bạn chưa quen với MongoDB, bạn có thể tìm hiểu nó trong hướng dẫn của chúng tôi tại đây

Để kết nối với MongoDB, python sử dụng thư viện được gọi là pymongo. Bạn có thể thêm thư viện này vào môi trường python của mình, sử dụng lệnh bên dưới từ môi trường Anaconda

conda install pymongo

Thư viện này cho phép python kết nối với MOngoDB bằng ứng dụng khách db. Sau khi kết nối, chúng tôi chọn tên db sẽ được sử dụng cho các hoạt động khác nhau

Chèn dữ liệu

Để chèn dữ liệu vào MongoDB chúng ta sử dụng phương thức insert[] có sẵn trong môi trường cơ sở dữ liệu. Trước tiên, chúng tôi kết nối với db bằng mã python được hiển thị bên dưới và sau đó chúng tôi cung cấp chi tiết tài liệu dưới dạng một loạt các cặp khóa-giá trị

# Import the python libraries
from pymongo import MongoClient
from pprint import pprint

# Choose the appropriate client
client = MongoClient[]

# Connect to the test db 
db=client.test

# Use the employee collection
employee = db.employee
employee_details = {
    'Name': 'Raj Kumar',
    'Address': 'Sears Streer, NZ',
    'Age': '42'
}

# Use the insert method
result = employee.insert_one[employee_details]

# Query for the inserted document.
Queryresult = employee.find_one[{'Age': '42'}]
pprint[Queryresult]

Khi chúng tôi thực thi đoạn mã trên, nó tạo ra kết quả sau

{u'Address': u'Sears Streer, NZ',
 u'Age': u'42',
 u'Name': u'Raj Kumar',
 u'_id': ObjectId['5adc5a9f84e7cd3940399f93']}

Cập nhật dữ liệu

Cập nhật dữ liệu MongoDB hiện có tương tự như chèn. Chúng tôi sử dụng phương thức update[] có nguồn gốc từ mongoDB. Trong đoạn mã dưới đây, chúng tôi đang thay thế bản ghi hiện có bằng các cặp khóa-giá trị mới. Xin lưu ý cách chúng tôi đang sử dụng tiêu chí điều kiện để quyết định bản ghi nào cần cập nhật

# Import the python libraries
from pymongo import MongoClient
from pprint import pprint

# Choose the appropriate client
client = MongoClient[]

# Connect to db
db=client.test
employee = db.employee

# Use the condition to choose the record
# and use the update method
db.employee.update_one[
        {"Age":'42'},
        {
        "$set": {
            "Name":"Srinidhi",
            "Age":'35',
            "Address":"New Omsk, WC"
        }
        }
    ]

Queryresult = employee.find_one[{'Age':'35'}]

pprint[Queryresult]

Khi chúng tôi thực thi đoạn mã trên, nó tạo ra kết quả sau

{u'Address': u'New Omsk, WC',
 u'Age': u'35',
 u'Name': u'Srinidhi',
 u'_id': ObjectId['5adc5a9f84e7cd3940399f93']}

Xóa dữ liệu

Việc xóa một bản ghi cũng rất dễ dàng khi chúng ta sử dụng phương thức xóa. Ở đây chúng tôi cũng đề cập đến điều kiện được sử dụng để chọn bản ghi cần xóa

Trong khi làm việc với các dự án cá nhân, bạn thường cần lưu trữ một số dữ liệu. Bạn có thể sử dụng cơ sở dữ liệu SQL hoặc NoSQL với máy chủ, nhưng điều đó sẽ yêu cầu bạn thực hiện một chút thiết lập

Trong bài viết này, chúng ta sẽ tìm hiểu về TinyDB và cách sử dụng nó để lưu trữ dữ liệu của chúng ta ở định dạng JSON

TinyDB là gì?

TinyDB là một cơ sở dữ liệu hướng tài liệu được viết bằng Python thuần túy không có phụ thuộc bên ngoài

Nó được thiết kế để sử dụng dễ dàng và thú vị bằng cách cung cấp API đơn giản và rõ ràng. Nó khá đơn giản để tìm hiểu và thiết lập, ngay cả đối với người mới bắt đầu

Khi nào không sử dụng TinyDB

Như đã đề cập trong chính tài liệu TinyDB, không phải lúc nào nó cũng là lựa chọn phù hợp cho các dự án của bạn. Nếu bạn cần các tính năng nâng cao như

  • truy cập từ nhiều quy trình hoặc luồng,
  • tạo chỉ mục cho các bảng,
  • một máy chủ HTTP,
  • quản lý các mối quan hệ giữa các bảng hoặc tương tự,
  • ACID đảm bảo

TinyDB là cơ sở dữ liệu không phù hợp với bạn. Trong những trường hợp đó, hãy cân nhắc sử dụng cơ sở dữ liệu như SQLite, Buzhug, CodernityDB hoặc MongoDB

Cách cài đặt TinyDB

Cài đặt TinyDB cực kỳ dễ dàng. Chỉ cần chạy lệnh này trong thiết bị đầu cuối của bạn

pip install tinydb

Cách sử dụng TinyDB

Hãy xem xét một ví dụ về Ứng dụng Todo nơi chúng ta chỉ cần thực hiện các thao tác CRUD. Bây giờ chúng tôi đã cài đặt TinyDB, hãy xem cách chúng tôi có thể lưu trữ dữ liệu của mình bằng TinyDB. TinyDB làm mọi thứ bằng JSON

Điều đầu tiên chúng ta sẽ làm là nhập các lớp cần thiết từ mô-đun

$ python
Python 3.9.7 [tags/v3.9.7:1016ef3, Aug 30 2021, 20:19:38] [MSC v.1929 64 bit [AMD64]] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> 
9. Vì vậy, hãy kích hoạt trình bao Python của bạn để viết mã

$ python
Python 3.9.7 [tags/v3.9.7:1016ef3, Aug 30 2021, 20:19:38] [MSC v.1929 64 bit [AMD64]] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> 

Bây giờ chúng tôi đã sẵn sàng để viết mã

________số 8

Chúng ta đã tạo một thể hiện của lớp TinyDB và chuyển tên tệp cho nó. Điều này sẽ tạo một tệp JSON

>>> from tinydb import TinyDB       
>>> db = TinyDB["todo_db.json"]
>>> 
0 nơi dữ liệu của chúng tôi sẽ được lưu trữ

Cách Chèn Dữ liệu vào TinyDB

Vì chúng ta đang xử lý JSON, dữ liệu được thêm vào sẽ không có gì khác ngoài Từ điển Python. Vì vậy, hãy xem cách chúng ta có thể chèn một mục

# Import the python libraries
from pymongo import MongoClient
from pprint import pprint

# Choose the appropriate client
client = MongoClient[]

# Connect to the test db 
db=client.test

# Use the employee collection
employee = db.employee
employee_details = {
    'Name': 'Raj Kumar',
    'Address': 'Sears Streer, NZ',
    'Age': '42'
}

# Use the insert method
result = employee.insert_one[employee_details]

# Query for the inserted document.
Queryresult = employee.find_one[{'Age': '42'}]
pprint[Queryresult]
0

Trước hết, chúng tôi đã tạo một từ điển mới có tên là

>>> from tinydb import TinyDB       
>>> db = TinyDB["todo_db.json"]
>>> 
1 với
>>> from tinydb import TinyDB       
>>> db = TinyDB["todo_db.json"]
>>> 
2 và
>>> from tinydb import TinyDB       
>>> db = TinyDB["todo_db.json"]
>>> 
3 được đặt lần lượt là
>>> from tinydb import TinyDB       
>>> db = TinyDB["todo_db.json"]
>>> 
4 và
>>> from tinydb import TinyDB       
>>> db = TinyDB["todo_db.json"]
>>> 
5. Sau đó, chúng tôi đã sử dụng phương thức
>>> from tinydb import TinyDB       
>>> db = TinyDB["todo_db.json"]
>>> 
6 trong lớp TinyDB để chèn dữ liệu vào cơ sở dữ liệu. Phương thức
>>> from tinydb import TinyDB       
>>> db = TinyDB["todo_db.json"]
>>> 
6 trả về
>>> from tinydb import TinyDB       
>>> db = TinyDB["todo_db.json"]
>>> 
8 của đối tượng mới được tạo

Ở giai đoạn này, một tệp JSON mới có tên là

>>> from tinydb import TinyDB       
>>> db = TinyDB["todo_db.json"]
>>> 
9 sẽ được tạo và sau khi dữ liệu được chèn vào. Nó sẽ trông giống thế này

{u'Address': u'Sears Streer, NZ',
 u'Age': u'42',
 u'Name': u'Raj Kumar',
 u'_id': ObjectId['5adc5a9f84e7cd3940399f93']}
0

Bạn để ý kỹ hơn thì

# Import the python libraries
from pymongo import MongoClient
from pprint import pprint

# Choose the appropriate client
client = MongoClient[]

# Connect to the test db 
db=client.test

# Use the employee collection
employee = db.employee
employee_details = {
    'Name': 'Raj Kumar',
    'Address': 'Sears Streer, NZ',
    'Age': '42'
}

# Use the insert method
result = employee.insert_one[employee_details]

# Query for the inserted document.
Queryresult = employee.find_one[{'Age': '42'}]
pprint[Queryresult]
00 là tên của bảng [đặt mặc định nhưng có thể thay đổi],  
# Import the python libraries
from pymongo import MongoClient
from pprint import pprint

# Choose the appropriate client
client = MongoClient[]

# Connect to the test db 
db=client.test

# Use the employee collection
employee = db.employee
employee_details = {
    'Name': 'Raj Kumar',
    'Address': 'Sears Streer, NZ',
    'Age': '42'
}

# Use the insert method
result = employee.insert_one[employee_details]

# Query for the inserted document.
Queryresult = employee.find_one[{'Age': '42'}]
pprint[Queryresult]
01 là id của đối tượng mới tạo, và giá trị của nó là dữ liệu ta vừa chèn vào. Vì vậy, về cơ bản nó chỉ là một từ điển lồng nhau

Chúng tôi cũng có thể chèn nhiều mục cùng một lúc như thế này

{u'Address': u'Sears Streer, NZ',
 u'Age': u'42',
 u'Name': u'Raj Kumar',
 u'_id': ObjectId['5adc5a9f84e7cd3940399f93']}
3

Trong trường hợp này, chúng tôi đã tạo một danh sách từ điển có tên là ________ 102 và sử dụng phương pháp ________ 103 để chèn các mục. Phương thức này cũng trả về danh sách

>>> from tinydb import TinyDB       
>>> db = TinyDB["todo_db.json"]
>>> 
8 đối tượng được chèn

Tệp

>>> from tinydb import TinyDB       
>>> db = TinyDB["todo_db.json"]
>>> 
9 bây giờ trông như thế này

{u'Address': u'Sears Streer, NZ',
 u'Age': u'42',
 u'Name': u'Raj Kumar',
 u'_id': ObjectId['5adc5a9f84e7cd3940399f93']}
8

Cách lấy dữ liệu từ TinyDB

Có một số cách để truy xuất dữ liệu từ cơ sở dữ liệu của bạn. Nhưng trước tiên bạn sẽ cần tạo một thể hiện của lớp Truy vấn. Vì vậy, chúng ta hãy làm điều đó

{u'Address': u'Sears Streer, NZ',
 u'Age': u'42',
 u'Name': u'Raj Kumar',
 u'_id': ObjectId['5adc5a9f84e7cd3940399f93']}
9

Bạn có thể sử dụng phương pháp

# Import the python libraries
from pymongo import MongoClient
from pprint import pprint

# Choose the appropriate client
client = MongoClient[]

# Connect to the test db 
db=client.test

# Use the employee collection
employee = db.employee
employee_details = {
    'Name': 'Raj Kumar',
    'Address': 'Sears Streer, NZ',
    'Age': '42'
}

# Use the insert method
result = employee.insert_one[employee_details]

# Query for the inserted document.
Queryresult = employee.find_one[{'Age': '42'}]
pprint[Queryresult]
06 để lấy dữ liệu

# Import the python libraries
from pymongo import MongoClient
from pprint import pprint

# Choose the appropriate client
client = MongoClient[]

# Connect to db
db=client.test
employee = db.employee

# Use the condition to choose the record
# and use the update method
db.employee.update_one[
        {"Age":'42'},
        {
        "$set": {
            "Name":"Srinidhi",
            "Age":'35',
            "Address":"New Omsk, WC"
        }
        }
    ]

Queryresult = employee.find_one[{'Age':'35'}]

pprint[Queryresult]
1

Phương thức

# Import the python libraries
from pymongo import MongoClient
from pprint import pprint

# Choose the appropriate client
client = MongoClient[]

# Connect to the test db 
db=client.test

# Use the employee collection
employee = db.employee
employee_details = {
    'Name': 'Raj Kumar',
    'Address': 'Sears Streer, NZ',
    'Age': '42'
}

# Use the insert method
result = employee.insert_one[employee_details]

# Query for the inserted document.
Queryresult = employee.find_one[{'Age': '42'}]
pprint[Queryresult]
07 trả về danh sách các mục phù hợp với truy vấn. Nếu không có mục nào ở đó, nó sẽ trả về một danh sách trống

Chúng tôi cũng có thể sử dụng phương pháp

# Import the python libraries
from pymongo import MongoClient
from pprint import pprint

# Choose the appropriate client
client = MongoClient[]

# Connect to the test db 
db=client.test

# Use the employee collection
employee = db.employee
employee_details = {
    'Name': 'Raj Kumar',
    'Address': 'Sears Streer, NZ',
    'Age': '42'
}

# Use the insert method
result = employee.insert_one[employee_details]

# Query for the inserted document.
Queryresult = employee.find_one[{'Age': '42'}]
pprint[Queryresult]
08 để lấy một mục

# Import the python libraries
from pymongo import MongoClient
from pprint import pprint

# Choose the appropriate client
client = MongoClient[]

# Connect to db
db=client.test
employee = db.employee

# Use the condition to choose the record
# and use the update method
db.employee.update_one[
        {"Age":'42'},
        {
        "$set": {
            "Name":"Srinidhi",
            "Age":'35',
            "Address":"New Omsk, WC"
        }
        }
    ]

Queryresult = employee.find_one[{'Age':'35'}]

pprint[Queryresult]
4

Phương thức

# Import the python libraries
from pymongo import MongoClient
from pprint import pprint

# Choose the appropriate client
client = MongoClient[]

# Connect to the test db 
db=client.test

# Use the employee collection
employee = db.employee
employee_details = {
    'Name': 'Raj Kumar',
    'Address': 'Sears Streer, NZ',
    'Age': '42'
}

# Use the insert method
result = employee.insert_one[employee_details]

# Query for the inserted document.
Queryresult = employee.find_one[{'Age': '42'}]
pprint[Queryresult]
08 chỉ trả về một tài liệu phù hợp. Nếu không có tài liệu nào phù hợp, nó sẽ trả về
{u'Address': u'Sears Streer, NZ',
 u'Age': u'42',
 u'Name': u'Raj Kumar',
 u'_id': ObjectId['5adc5a9f84e7cd3940399f93']}
00

Để kiểm tra xem một tài liệu có tồn tại trong cơ sở dữ liệu hay không, chúng tôi sử dụng phương thức

{u'Address': u'Sears Streer, NZ',
 u'Age': u'42',
 u'Name': u'Raj Kumar',
 u'_id': ObjectId['5adc5a9f84e7cd3940399f93']}
01

$ python
Python 3.9.7 [tags/v3.9.7:1016ef3, Aug 30 2021, 20:19:38] [MSC v.1929 64 bit [AMD64]] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> 
0

Chúng tôi cũng có thể nhận được số lượng tài liệu phù hợp với truy vấn của mình bằng phương pháp

{u'Address': u'Sears Streer, NZ',
 u'Age': u'42',
 u'Name': u'Raj Kumar',
 u'_id': ObjectId['5adc5a9f84e7cd3940399f93']}
02

$ python
Python 3.9.7 [tags/v3.9.7:1016ef3, Aug 30 2021, 20:19:38] [MSC v.1929 64 bit [AMD64]] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> 
1

Để lấy tổng số tài liệu được lưu trữ trong cơ sở dữ liệu, chúng tôi sử dụng phương pháp

{u'Address': u'Sears Streer, NZ',
 u'Age': u'42',
 u'Name': u'Raj Kumar',
 u'_id': ObjectId['5adc5a9f84e7cd3940399f93']}
03

$ python
Python 3.9.7 [tags/v3.9.7:1016ef3, Aug 30 2021, 20:19:38] [MSC v.1929 64 bit [AMD64]] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> 
2

Để lấy tất cả các tài liệu trong cơ sở dữ liệu, chúng ta có thể sử dụng phương pháp

{u'Address': u'Sears Streer, NZ',
 u'Age': u'42',
 u'Name': u'Raj Kumar',
 u'_id': ObjectId['5adc5a9f84e7cd3940399f93']}
04

$ python
Python 3.9.7 [tags/v3.9.7:1016ef3, Aug 30 2021, 20:19:38] [MSC v.1929 64 bit [AMD64]] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> 
3

Cách cập nhật dữ liệu trong TinyDB

Phương thức

{u'Address': u'Sears Streer, NZ',
 u'Age': u'42',
 u'Name': u'Raj Kumar',
 u'_id': ObjectId['5adc5a9f84e7cd3940399f93']}
05 lấy các trường mà các tài liệu phù hợp sẽ có hoặc một phương thức sẽ cập nhật các tài liệu. Nó cũng có thể có một điều kiện để truy vấn một đối số tùy chọn

Để cập nhật một tài liệu phù hợp với một truy vấn, chúng tôi có thể làm điều này

$ python
Python 3.9.7 [tags/v3.9.7:1016ef3, Aug 30 2021, 20:19:38] [MSC v.1929 64 bit [AMD64]] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> 
4

Ở đây, chúng tôi đã cập nhật tên của tài liệu thành

{u'Address': u'Sears Streer, NZ',
 u'Age': u'42',
 u'Name': u'Raj Kumar',
 u'_id': ObjectId['5adc5a9f84e7cd3940399f93']}
06 [tên của nó là
>>> from tinydb import TinyDB       
>>> db = TinyDB["todo_db.json"]
>>> 
4 ở trên]

Đôi khi, chúng ta cần cập nhật tất cả các tài liệu. Trong trường hợp đó, chúng tôi không viết đối số truy vấn

$ python
Python 3.9.7 [tags/v3.9.7:1016ef3, Aug 30 2021, 20:19:38] [MSC v.1929 64 bit [AMD64]] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> 
5

Chúng tôi đã cập nhật số lượng của tất cả các tài liệu thành

{u'Address': u'Sears Streer, NZ',
 u'Age': u'42',
 u'Name': u'Raj Kumar',
 u'_id': ObjectId['5adc5a9f84e7cd3940399f93']}
08

Cách xóa dữ liệu trong TinyDB

Để xóa tài liệu khỏi cơ sở dữ liệu, chúng tôi sử dụng phương thức

{u'Address': u'Sears Streer, NZ',
 u'Age': u'42',
 u'Name': u'Raj Kumar',
 u'_id': ObjectId['5adc5a9f84e7cd3940399f93']}
09. Phương thức này có một điều kiện tùy chọn và danh sách id tài liệu tùy chọn. Nếu điều kiện phù hợp, tài liệu sẽ bị xóa

$ python
Python 3.9.7 [tags/v3.9.7:1016ef3, Aug 30 2021, 20:19:38] [MSC v.1929 64 bit [AMD64]] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> 
6

Để xóa tài liệu bằng id tài liệu, chúng ta có thể viết mã này

$ python
Python 3.9.7 [tags/v3.9.7:1016ef3, Aug 30 2021, 20:19:38] [MSC v.1929 64 bit [AMD64]] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> 
7

Để xóa mọi thứ khỏi cơ sở dữ liệu, chúng ta có thể sử dụng phương pháp

{u'Address': u'Sears Streer, NZ',
 u'Age': u'42',
 u'Name': u'Raj Kumar',
 u'_id': ObjectId['5adc5a9f84e7cd3940399f93']}
30

$ python
Python 3.9.7 [tags/v3.9.7:1016ef3, Aug 30 2021, 20:19:38] [MSC v.1929 64 bit [AMD64]] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> 
8

kết thúc

Trong bài viết này, chúng ta đã nói về TinyDB và cách thực hiện các thao tác CRUD trên cơ sở dữ liệu

Đây chỉ là một hướng dẫn cơ bản. Để tìm hiểu thêm về cách sử dụng nâng cao của TinyDB, bạn có thể xem qua tài liệu chính thức của nó

Cảm ơn vì đã đọc

Đăng ký nhận bản tin của tôi

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

Ashutosh Krishna

Nhà phát triển ứng dụng tại Thoughtworks Ấn Độ

Nếu bạn đọc đến đây, hãy tweet cho tác giả để cho họ thấy bạn quan tâm. Tweet một lời cảm ơn

Học cách viết mã miễn phí. Chương trình giảng dạy mã nguồn mở của freeCodeCamp đã giúp hơn 40.000 người có được việc làm với tư cách là nhà phát triển. Bắt đầu

JSON có phải là loại cơ sở dữ liệu NoSQL không?

Cơ sở dữ liệu JSON là cơ sở dữ liệu NoSQL kiểu tài liệu , lý tưởng để lưu trữ dữ liệu bán cấu trúc. Nó linh hoạt hơn nhiều so với định dạng hàng-cột, cố định và tốn kém khi thực hiện các thay đổi lược đồ nhỏ.

Làm cách nào để sử dụng NoQuery trong Python?

Để kết nối với MongoDB, python sử dụng thư viện có tên là pymongo . Bạn có thể thêm thư viện này vào môi trường python của mình, sử dụng lệnh bên dưới từ môi trường Anaconda. Thư viện này cho phép python kết nối với MOngoDB bằng ứng dụng khách db. Sau khi kết nối, chúng tôi chọn tên db sẽ được sử dụng cho các hoạt động khác nhau.

TinyDB có phải là cơ sở dữ liệu NoSQL không?

Mô tả. Tinyrecord là thư viện triển khai hỗ trợ giao dịch nguyên tử thử nghiệm cho cơ sở dữ liệu TinyDB NoSQL . Nó sử dụng kiến ​​trúc ghi trước sau đó thực thi, cho phép chúng tôi giảm thiểu thời gian chúng tôi ở trong khóa luồng.

Làm cách nào để chèn JSON vào MongoDB Python?

Chèn dữ liệu từ JSON vào MongoDB Python .
Bước 1. Tạo bộ sưu tập bằng PyMongo
Bước 2. Chèn dữ liệu từ JSON vào MongoDB Python
Bước 3. Lọc dữ liệu
Bước 4. Lưu dữ liệu từ MongoDB sang JSON Python

Chủ Đề