使用python完成mongodb数据库的增删改查

网友投稿 944 2022-05-29

使用Python远程操作MongoDB数据库

没有下载MongoDB朋友,可以看看ubuntu下载mongoDB

1. mongdb和python交互的模块

pymongo 提供了mongdb和python交互的所有方法

安装方式: pip install pymongo

2. 使用pymongo

数据库和集合能够自动创建

from pymongo import MongoClient client = MongoClient(host,port) # 如果是本地连接host,port参数可以省略 collection = client[db名][集合名] # collection = client.db名.集合名 # 与上边用法相同

1

2

3

4

5

6

from pymongo import MongoClient from urllib.parse import quote_plus user = 'python' # 账号 password = 'python' # 密码 host = '127.0.0.1' # host port = 27017 # port uri = "mongodb://%s:%s@%s" % (quote_plus(user), quote_plus(password), host) # quote_plus函数:对url进行编码 # uri = mongodb://python:python@127.0.0.1 client = MongoClient(uri, port=port) collection = client.db名.集合名

1

2

3

4

5

6

7

8

9

10

11

12

13

14

insert可以批量的插入数据列表,也可以插入一条数据

collection.insert({一条数据}) collection.insert([{数据一},{数据二}])

使用python完成mongodb数据库的增删改查

1

2

返回插入数据的_id

ret = collection.insert({"name":"test10010","age":33}) print(ret)

1

2

返回ObjectId对象构成的列表

item_list = [{"name":"test1000{}".format(i)} for i in range(10)] rets = collection.insert(item_list) print(rets) for ret in rets: print(ret)

1

2

3

4

5

接收一个字典形式的条件,返回字典形式的整条数据

如果条件为空,则返回第一条

ret = client.test.test.find_one({'name': 'test10001'}) print(ret) # 包含mongodb的ObjectId对象的字典 _ = ret.pop('_id') # 清除mongodb的ObjectId对象的k,v print(ret)

1

2

3

4

返回所有满足条件的结果,如果条件为空,则返回全部

结果是一个Cursor游标对象,是一个可迭代对象,可以类似读文件的指针,但是只能够进行一次读取

rets = collection.find({"name":"test10005"}), for ret in rets: print(ret) for ret in rets: #此时rets中没有内容 print(ret)

1

2

3

4

5

语法:collection.update({条件}, {’$set’:{指定的kv或完整的一条数据}}, multi=False/True, upsert=False/True)

multi参数:默认为False,表示更新一条; multi=True则更新多条; multi参数必须和$set一起使用

upsert参数:默认为False; upsert=True则先查询是否存在,存在则更新;不存在就插入

$set表示指定字段进行更新

data = {'msg':'这是一条完整的数据1','name':'哈哈'} client.test.test.update({'haha': 'heihei'}, {'$set':data}, upsert=True)

1

2

data = {'msg':'这是一条完整的数据2','name':'哈哈'} # 该完整数据是先查询后获取的 client.test.test.update({}, {'$set':data}, multi=True, upsert=True)

1

2

data = {'msg':'指定只更新msg___1'} client.test.test.update({}, {'$set':data}, upsert=True)

1

2

data = {'msg':'指定只更新msg___2'} client.test.test.update({}, {'$set':data}, multi=True, upsert=True)

1

2

collection.delete_one({"name":"test10010"})

1

collection.delete_many({"name":"test10010"})

1

3. pymongo模块其他api

查看pymongo官方文档或源代码 http://api.mongodb.com/python/current/

小结

掌握pymongo的增删改查的使用

掌握权限认证的方式使用pymongo模块

MongoDB Python 数据库

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:React 之触底加载
下一篇:Qt 解析Json
相关文章