Home > Backend Development > Python Tutorial > A simple and clear tutorial on operating Mongodb with Python3

A simple and clear tutorial on operating Mongodb with Python3

黄舟
Release: 2017-05-28 11:17:57
Original
1293 people have browsed it

This article mainly introduces the detailed Python3 operationMongodbconcise and easy-to-understand tutorial. It introduces in detail how to connect the database and operate the database. You can find out if you need it.

Connecting to the database

To connect to the database, you need to provide an address and interface. First you still have to import the package.

from pymongo import MongoClient
conn = MongoClient('localhost',27017)
Copy after login

Of course, you can use the following writing:

conn = MongoClient('mongodb://localhost:27017/')
Copy after login

Create database

##mongodb does not need to be created in advance Good database, but use it directly, and automatically create it if it is found not to exist.

db = conn.testdb
Copy after login

The above statement will create a testdb database. However, when there is no

inserted data, you cannot see the database in the management tool (not displayed).

Insert data

First of all, let’s insert a piece of data and take a look.

Single record insertion

from pymongo import MongoClient
conn = MongoClient('mongodb://localhost:27017/')
db = conn.testdb
db.col.insert({"name":'yanying','province':'江苏','age':25})
Copy after login

Note: The database connection operation will be ignored in the following operations, and the core code will be written directly. Please make up for it yourself.

Nothing happens in the python console, that's what success means. Use the management tool to view the database records and it does contain a piece of data.

Multiple record insertion

Mongodb can also insert multiple pieces of data at one time

db.col.insert([
 {"name":'yanying','province':'江苏','age':25},
 {"name":'张三','province':'浙江','age':24},
 {"name":'张三1','province':'浙江1','age':25},
 {"name":'张三2','province':'浙江2','age':26},
 {"name":'张三3','province':'浙江3','age':28},
])
Copy after login

QueryData

Now we will query the data we just inserted.

Single query

We can use find_one() to query a record.

db.col.find_one()
Copy after login

The above statement can query a mongodb record. The extra _id in the record is a unique value automatically generated by Mongodb.

Copy code The code is as follows:

{'_id': ObjectId('5925351ad92fac3250b9ae3f'), 'name': 'yanying', 'province': '江苏', 'age': 25}
Copy after login
Copy after login

We will insert some data for the following operations. (Omit tens of thousands of words)


Query all

If we need to query all records, we can use db.col.find( ) but what is found is a result resource set.

We can use

for to list all records.

for item in db.col.find():
 print(item)
Copy after login

This way you can get all records.

{'_id': ObjectId('5925351ad92fac3250b9ae3f'), 'name': 'yanying', 'province': '江苏', 'age': 25}
{'_id': ObjectId('592550e5d92fac0b8c449f87'), 'name': 'zhangsan', 'province': '北京', 'age': 29}
{'_id': ObjectId('592550f6d92fac3548c20b1a'), 'name': 'lisi', 'province': '上海', 'age': 22}
{'_id': ObjectId('59255118d92fac43dcb1999a'), 'name': '王二麻', 'province': '广东', 'age': 30}
Copy after login

Conditional query

You can filter data by inserting query conditions as parameters.

for item in db.col.find({'name':"yanying"}):
 print(item)
Copy after login

Query results

The code is as follows:

{'_id': ObjectId('5925351ad92fac3250b9ae3f'), 'name': 'yanying', 'province': '江苏', 'age': 25}
Copy after login
Copy after login

Of course, you can also query records that are less than a certain value

for item in db.col.find({"age":{"$lt":25}}):
 print(item)
Copy after login

or greater than Records of a certain value

for item in db.col.find({"age":{"$gt":25}}):
 print(item)
Copy after login

Statistical query

The above code can count the number of all records

db.col.find().count() // 4
Copy after login

Or add some conditions

db.col.find({"age":{"$gt":25}}).count() //2
Copy after login

Query records based on _id

_id is an id automatically generated by mongodb. Its type is ObjectId. If you want to use it, Type conversion is required.

This method is provided in python3, but it needs to import a library.

from bson.objectid import ObjectId
Copy after login

In this way, you can directly use _id to query.

collection.find_one({'_id':ObjectId('592550e5d92fac0b8c449f87')})
Copy after login

Sort the results

Just put the fields that need to be sorted into the

sort method. Mongodb defaults to ascending order

db.col.find().sort("age")
Copy after login

But you can also add some parameters to change the sorting method. For example, reverse order, but remember to import the pymongo library first

import pymongo
db.col.find().sort("UserName",pymongo.DESCENDING)
Copy after login

You can also make it ascending order, although it is the default

for item in db.col.find().sort('age',pymongo.ASCENDING):
 print(item)
Copy after login

Updatedata

Updating data is very simple, you only need a condition and the data that needs to be updated

Copy code The code is as follows:

db.col.update({'_id':ObjectId('59255118d92fac43dcb1999a')},{'$set':{'name':'王二麻33333'}})
Copy after login

The results are as follows: Wang Erma became Wang Erma 33333

The code is as follows:

{'_id': ObjectId('59255118d92fac43dcb1999a'), 'name': '王二麻33333', 'province': '广东', 'age': 30}
Copy after login

DeleteData

Delete The data uses the remove() method. If the method has conditions, the specified condition data will be deleted. Otherwise, all

will be deleted. Delete the user whose name is Wang Erma 33333.

db.col.remove({'name':'王二麻33333'})
Copy after login

Delete all data (use with caution)

db.col.remove()
Copy after login

The above is the detailed content of A simple and clear tutorial on operating Mongodb with Python3. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template