python and mongodb---学习笔记

使用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()

本文章引用于千锋

上一篇:Node.js 连接 MongoDB数据库


下一篇:【node】node连接mongodb操作数据库