Python通过PyMongo库实现对MongoDB的使用

Posted smilepassed

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python通过PyMongo库实现对MongoDB的使用相关的知识,希望对你有一定的参考价值。

一、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’) #对年龄进行去重

 

以上是关于Python通过PyMongo库实现对MongoDB的使用的主要内容,如果未能解决你的问题,请参考以下文章

pymongo的使用方法

python数据库 pymongo 的使用

MongoDB 副本集 pymongo使用

mongodb——python的交互

为啥 PyMongo 3 给出 ServerSelectionTimeoutError?

为啥 PyMongo 3 给出 ServerSelectionTimeoutError?