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

本文章引用于千锋

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值