Để tạo kết nối giữa ngôn ngữ lập trình Python và cơ sở dữ liệu MongoDB, trước tiên chúng ta cần cài đặt trình điều khiển pymongo. Ở đây, chúng tôi đang tạo một ví dụ kết nối với cơ sở dữ liệu và thực hiện các hoạt động cơ sở dữ liệu. Các bài viết liên quan: Ví dụ này bao gồm các bước sau: Bây giờ, hãy nhập vào trình bao cơ sở dữ liệu MongoDB để xem cơ sở dữ liệu và bộ sưu tập đã tạo. Chúng ta có thể sử dụng lệnh sau để nhập vào cơ sở dữ liệu. Lệnh sau được sử dụng để hiển thị cơ sở dữ liệu có sẵn. Lệnh sau được sử dụng để hiển thị bộ sưu tập có sẵn vào cơ sở dữ liệu. Chúng tôi có thể xem các bản ghi được lưu trữ trong bộ sưu tập cụ
thể. Lệnh sau được sử dụng để hiển thị bản ghi. Kết nối mongodb MongoDB Python 6from pymongo import MongoClient # import mongo client to connect
import pprint
# Creating instance of mongoclient
client = MongoClient[]
# Creating database
db = client.testDB
employee = {"id": "101",
"name": "Peter",
"profession": "Software Engineer",
}
# Creating document
employees = db.employees
# Inserting data
employees.insert_one[employee]
# Fetching data
pprint.pprint[employees.find_one[]]
Để tạo kết nối giữa ngôn ngữ lập trình Python và cơ sở dữ liệu MongoDB, trước tiên chúng ta cần cài đặt trình điều khiển pymongo. Ở đây, chúng tôi đang tạo một ví dụ kết nối với cơ sở dữ liệu và thực hiện các hoạt động cơ sở dữ liệu.
Các bài viết liên quan:
Ví dụ này bao gồm các bước sau:
- Install Driver
- Tạo File Python
from pymongo import MongoClient # import mongo client to connect import pprint # Creating instance of mongoclient client = MongoClient[] # Creating database db = client.testDB employee = {"id": "101", "name": "Peter", "profession": "Software Engineer", } # Creating document employees = db.employees # Inserting data employees.insert_one[employee] # Fetching data pprint.pprint[employees.find_one[]]
- Thực thi tập lệnh Python
- Nhập vào Mongo Shell
Bây giờ, hãy nhập vào trình bao cơ sở dữ liệu MongoDB để xem cơ sở dữ liệu và bộ sưu tập đã tạo.
Chúng ta có thể sử dụng lệnh sau để nhập vào cơ sở dữ liệu.
- Kiểm tra cơ sở dữ liệu
Lệnh sau được sử dụng để hiển thị cơ sở dữ liệu có sẵn.
- Kiểm tra Collection
Lệnh sau được sử dụng để hiển thị bộ sưu tập có sẵn vào cơ sở dữ liệu.
- Access Records
Chúng tôi có thể xem các bản ghi được lưu trữ trong bộ sưu tập cụ thể. Lệnh sau được sử dụng để hiển thị bản ghi.
Kết nối mongodb MongoDB Python 6
tôi đã cố gắng sử dụng $ cond trong $ match ở một trong các giai đoạn của tổng hợp như được hiển thị bên dưới:
{ "$match" : {
"field1" : {
"$cond" : {
"if" : { "$eq" : [ "$id" , 1206]},
"then" : 0,
"else" : 1545001200
}
},
"field2" : value2 }}
Nhưng tôi gặp lỗi này:
Error:
Assert: command failed: {
"ok" : 0,
"errmsg" : "unknown operator: $cond",
"code" : 2,
"codeName" : "BadValue"
} : aggregate failed
Phiên bản mongodb là 3.4.4. Bất kỳ ý tưởng về vấn đề này?
- python
- mongodb
- aggregation-framework
5 hữu ích 4 bình luận 3.1k xem chia sẻ
answer
2
Bạn chỉ cần nhập lại logic một chút.
{ $match: { $expr: {
$or: [
{ $and: [
{ $eq: [ "$id", 1206 ] },
{ $eq: [ "$field1", 0 ] }
]},
{ $and: [
{ $ne: [ "$id", 1206 ] },
{ $eq: [ "$field1", 1545001200 ] }
]},
],
}}}
Về mặt logic, hai câu lệnh tương đương nhau:
- Khớp tài liệu bằng cách kiểm tra
field1 == 0
nếuid == 1206
, nếu không, khớp với tài liệu bằng cách kiểm trafield1 == 1545001200
- Khớp tài liệu nếu [
id == 1206
vàfield1 == 0
] hoặc [id != 1206
vàfield1 == 1545001200
].
2 hữu ích 0 bình luận chia sẻ
answer
0
Đối với những người gặp điều này sau đó trên đường:
Điều này sẽ không hoạt động cho 3.4.4. Nhưng trong MongoDB 3.6, họ đã giới thiệu toán tử $ expr cho phép bạn sử dụng $ cond và các phép toán khác trong truy vấn $ match.
//docs.mongodb.com/manual/reference/operator/aggregation/match/
Để biết ví dụ, hãy xem câu trả lời của iamfrank.
Cũng như đã đề cập trong các nhận xét, bạn có thể thực hiện việc này sau này trong quá trình thực hiện. Nhưng lý tưởng nhất là bạn sẽ muốn lọc ra các kết quả ngay từ đầu bằng cách sử dụng $ match để cải thiện thời gian xử lý.
0 hữu ích 3 bình luận chia sẻ