使用python连接使用mongodb数据库
1、安装PyMongo
pip3 install PyMongo
2、建立连接
使用PyMogo时,第一步是运行mongod实例创建一个创建一个MongoClient。如下:
from python import MongoClient
client = MongoClient()
上述代码连接默认主机和端口。也可以明确指定主机和端口,如下所示:
from pymogo import MongoClient
#client = MongoClient()
client = MongoClient("localhost",27017)
或使用MongoDB URL格式:
client = MonoClient("mongodb://localhost:27017/")
3、获取数据库
MongoDB的一个实例可以支持多个独立的数据库。在使用PyMongo时,可以使用MongoClien实例的属性的方式和访问数据库:
db = client.pythondb
如果数据库名称使用属性方式访问无法正常工作(如:python-db),则可以使用字典样式访问:
db = client["python--db"]
4、获取集合
集合是存储在MongoDB中的一组文档,可以类似于关系数据库中的表。在PyMongo中获取集合的工作方式与获取数据库相同:
collection = db.python_collection
或使用字典方式访问
collection = db["python-collection"]
5、文档
MongoDB中的数据使用JSON方式来表示文档(并存储)。在PyMongo中使用字典来表示文档。例如,以下字典可以用于表示博客文章:
import datetime
from pymongo import MongoClient
client = MongoClient()
post = {"author":"Mike",
"text":"My first blog post!",
"tags":["mongodb","python","pymongo"],
"date":datetime.datetime.utcnow()
}
6、插入文档
要将文档插入到集合中,可以使用insert_one()方法
import datetime
from pymogo import MongoClient
client = MongoClient()
db = client.pythondb
post = {"author":"Mike",
"text":"My first blog post!",
"tags":["mongodb","python","pymongo"],
"date":datetime.datetime.utcnow()
}
posts = db.posts
post_id = posts insert_one(post).inserted_id
print("post id is",post_id)
db.close()
插入文档时,如果文档尚未包含"_id"键,则会自动添加"_id","_id"的值在集合中必须是唯一的。insert_on()返回一个InsertOneResult 的实例
或者直接插入
from pymogo import MongoClient
#连接服务器
conn = MongoClient("localhost",27017)
#连接数据库
db = conn.mydb
#获取集合
collection = db.student
#添加文档
#collection.insert({"name":"abc","age":19,"gender":1,"address":"北京","isDelete":0})
collection.insert({"name":"abc1","age":19,"gender":1,"address":"北京","isDelete":0},{"name":"abc2","age":19,"gender":1,"address":"北京","isDelete":0})
#断开
conn.close()
7、查询文档
import pymongo
from pymongo import MongoClient
from bson.objectid import ObjectId #用于ID查询
#连接服务器
conn = MongoClient("localhost",27017)
#连接数据库
db = conn.mydb
#获取集合
collection = db.student
#查询文档
#查询部分文档
res = collection.find({"age":{"$gt":18}})
for row in res:
print(row)
print(type(row))
#统计查询
res = collection.find({"age":{"$gt":18}}).count()
print(res)
#根据id查询
res = collection.find({"_id":ObjectID("5995084b019723fe2a0d8d14")})
preint(res[0])
#排序
res = collection.find().sort("age")#升序
res = collection.find().sort("age",pymongo.DESCENDING)#降序
for row in res:
print(row)
#分页查询
res = collection.find().skip(3).limit(5)
for row in res:
print(row)
#断开
conn,close()
8、更新文档
from pymongo import MongoClient
#连接服务器
conn = MongoClient("localhost",27017)
#连接数据库
db = conn.mydb
#获取集合
collection = db.student
collection.update({"name":"lilei"},{"$set":{"age":25}})
#断开
conn.close()
9、删除文档
from pymongo import MongoClient
#连接服务器
conn = MongoClient("localhost",27017)
#连接数据库
db = conn.mydb
#获取集合
collection = db.student
collection.remove()
#断开
conn.close()
本文章引用于千锋