一、Python通过PyMongo库实现对MongoDB的使用
代码:
From pymongo import MongoClient
# 链接mongodb数据库并初始化数据库
方式一:
Client = MongoClient (‘mongodb://usr:password@uri’) 例:(‘mongodb://kingname:123456@192.168.123.45’)
Database = client.Chapter6 #Chapter6 为数据库名字
Collection = database.spider #spider 为集合名字
方式二:
Client = MongoClient (‘mongodb://usr:password@uri’) 例:(‘mongodb://kingname:123456@192.168.123.45’)
Database = client[‘chapter6’] #chapter6为指定的数据库名字,方括号中除了写指定的字符串外,也可写成一个指定的变量
Collection = database[‘spider’] #spider为指定的集合名字,方括号中除了写指定的字符串外,也可写成一个指定的变量
(当需要批量操作数据库时可用方式二)
1、插入数据insert(参数),参数为python字典的样式在这里也是的在这里也是可用这人生日快日用放入
s
Client = MongoClient (‘mongodb://usr:password@uri’) 例:(‘mongodb://kingname:123456@192.168.123.45’)
Database = client[‘chapter6’]
Collection = database[‘spider’]
Data = {‘id’:123,’name’:’kingname’,’age’:28,’salary’:99999}
Collection.insert(data) #插入数据库后MongoDB会自动生成一个_id代表数据插入的时间,不重复,始终递增
实现批量插入数据
more_data = [{‘id’:1,’name’:’张三’,’age’:23,’salary’:1000},
{‘id’:2,’name’:’李四’,’age’:24,’salary’:2000},
{‘id’:3,’name’:’王五’,’age’:25,’salary’:3000}]
Collection.insert(more_data)
2、查找数据
find(查找条件,返回字段)
find_one(查找条件,返回字段)#一次只返回一条信息
Client = MongoClient (‘mongodb://usr:password@uri’) 例:(‘mongodb://kingname:123456@192.168.123.45’)
Database = client[‘chapter6’]
Collection = database[‘spider’]
Data = {‘id’:123,’name’:’kingname’,’age’:28,’salary’:99999}
‘’’查找的三种写法’’’
connect = collection.find() #不加参数,表示获取指定集合中所有内容的所有字段
connect = collection.find({‘age’:29}) #只查询所有年龄为29的人
connect = collection.find({‘age’:29},{‘_id’:0,’name’:1,’salary’:1) #查询所有年龄为29的人,只显示’name’和’salary’字段,期中’_id’必须人为指定为0才不会显示,其余字段必须统一使用返回或不返回
逻辑查询符号:
$gt 大于,$lt 小于,$gte 大于等于,$lte 小于等于,$eq 等于,$ne 不等于
用法:
collection.find({‘age’:{‘$gt’:29}}) #查询所有年龄大于29的记录
collection.find({‘age’:{‘$gte’:29,’$lte’:40}}) #查询所有29<=年龄<=40的记录
collection.find({‘age’:{‘$ne’:40}}) #查询所有年龄不等于40的记录
对查询结果进行排序sort():
语法:collection.find().sort(‘列名’,1或-1) 一般配合find()使用
用法:
collection.find({‘age’:{‘$gte:29,’$lte’:40}}).sort(‘age’,-1) #查询出29<=年龄<=40的记录,并对age进行降序排序
更新记录update_one()和update_many():
语法:
Collection.update_one(参数1,参数2)#只更新一条符合要求的信息(参数1,2都为字典,不能省略)
Collection.update_many(参数1,参数2)#更新所有符合要求的信息(参数1,2都为字典,不能省略)
用法:
Collection.update_one({‘age’:20},{‘$set’:{‘name’:’kingname’}}) #将第一个年龄为20的人的姓名改为’kingname’
Collection.update_many({‘age’:20,{‘$set’:{‘age’:30}}) #将年龄为20的所有人改年龄为30
collection.update_many({‘age’:{‘$gt’:40},{‘$set’:{‘name’:’notyoung’}}) #将年龄所有大于40的人名字改为’notyoung’
删除记录delete_one()和delete_many():
语法:
Collection.delete_one(参数)
Collection.delete_many(参数)
用法:
Collection.delete_one({‘name’:’kingname’}) #删除一条名字为’kingname’的记录
Collection,delete_many({‘name’:”kingname’}) #删除所有名字为’kingname’的记录
对结果进行去重distinct(‘列名’):
语法:
Collection.distinct(‘列名’)
用法:
Collection.distinct(‘age’) #对年龄进行去重