python数据存储系列教程——python中mongodb数据库操作:连接、增删查改、多级路径
2018-02-24 11:13
981 查看
全栈工程师开发手册 (作者:陈玓玏)
python教程全解
调试环境python3.6,调试python操作mongodb数据库,首先要在本地或服务器安装mongodb数据库。安装参考:http://blog.csdn.net/luanpeng825485697/article/details/79353263
在python3.6下我们使用pymongo库。
安装python库的方法,请查看Python库的安装与卸载
安装成功后就可以编程代码实现python对mongodb数据库的操作了
python3.6操作mongodb数据库前请先确保mongodb服务已经打开
python3.6下代码如下
python教程全解
调试环境python3.6,调试python操作mongodb数据库,首先要在本地或服务器安装mongodb数据库。安装参考:http://blog.csdn.net/luanpeng825485697/article/details/79353263
在python3.6下我们使用pymongo库。
pip install pymongo
安装python库的方法,请查看Python库的安装与卸载
安装成功后就可以编程代码实现python对mongodb数据库的操作了
python3.6操作mongodb数据库前请先确保mongodb服务已经打开
python3.6下代码如下
#python3.6操作mongodb数据库。使用前请先确保mongodb服务已经打开 print("=====================mongodb数据库=====================") from pymongo import MongoClient from bson.objectid import ObjectId # 连接数据库 conn = MongoClient('127.0.0.1', 27017) db = conn.mydb # 指定数据库名称,连接mydb数据库,没有则自动创建 my_set=db.test_set #使用test_set集合,没有则自动创建 # 插入数据(insert插入一个列表多条数据不用遍历,效率高, save需要遍历列表,一个个插入) users=[{"name":"zhangsan","age":18},{"name":"lisi","age":20}] my_set.insert(users) # insert可以插入一个对象或者对象列表 user={"name":"zhangsan","age":18,'li':[1,2,3,4,5,5]} my_set.save(user) # save只能插入一个对象 #返回插入的ID print(my_set.inserted_ids) # 查询数据(查询不到则返回None) #查询全部 alluser = my_set.find() # 数据集合pymongo.cursor.Cursor类型 #查询name=zhangsan的 alluser = my_set.find({"name":"zhangsan"}) #查询时的in操作 alluser = my_set.find({"age":{"$in":(20,30,35)}}) # 查询时的or操作 alluser = my_set.find({"$or":[{"age":20},{"age":35}]}) # 查询时的all操作 alluser = my_set.find({'li':{'$all':[1,2,3,4]}}) # 输出...'name': 'zhangsan', 'age': 18, 'li': [1, 2, 3, 4, 5, 6]} #查询集合中age大于25的所有记录 alluser = my_set.find({"age":{"$gt":15}}) #(>) 大于 - $gt, (<) 小于 - $lt, (>=) 大于等于 - $gte (<= ) 小于等于 - $lte #找出name的类型是String的 alluser = my_set.find({'name':{'$type':2}}) # Double 1 # String 2 # Object 3 # Array 4 # Binary data 5 # Undefined 6 已废弃 # Object id 7 # Boolean 8 # Date 9 # Null 10 # Regular Expression 11 # JavaScript 13 # Symbol 14 # JavaScript (with scope) 15 # 32-bit integer 16 # Timestamp 17 # 64-bit integer 18 # Min key 255 Query with -1. # Max key 127 # 数据集排序 alluser.sort([("age",1)]) #在MongoDB中使用sort()方法对数据进行排序,sort()方法可以通过参数指定排序的字段,并使用 1 和 -1 来指定排序的方式,其中 1 为升序,-1为降序。 #limit()方法用来读取指定数量的数据 #skip()方法用来跳过指定数量的数据 alluser.skip(2).limit(6) #下面表示跳过两条数据后读取6条 # 遍历数据集 for i in alluser: print(i) # 统计 print(alluser.count()) # 查询一个记录 print(my_set.find_one({"name":"zhangsan"})) print(my_set.find_one({'_id':ObjectId('5a8fd9f047d14523ec6d377c')})) # 更新数据 # my_set.update( # <query>, #查询条件 # <update>, #update的对象和一些更新的操作符 # { # upsert: <boolean>, #如果不存在update的记录,是否插入 # multi: <boolean>, #可选,mongodb 默认是false,只更新找到的第一条记录 # writeConcern: <document> #可选,抛出异常的级别。 # } # ) #修改字段的值 my_set.update({"name":"zhangsan"},{'$set':{"age":20}}) db.col.update({'_id':ObjectId('5a8fd9f047d14523ec6d377c')},{'$set':{'age':'33'}}) # 列表字段添加新元素 my_set.update({'name':"lisi"}, {'$push':{'li':4}}) # 在name为lisi的记录中的li字段中添加元素4 my_set.update({'name':"lisi"}, {'$push':{'li':[8,9]}}) # 在name为lisi的记录中的li字段中添加元素4、5 # 列表字段移除元素 my_set.update({'name':"lisi"}, {'$pop':{'li':1}}) # pop 移除最后一个元素(-1为移除第一个) my_set.update({'name':"lisi"}, {'pull':{'li':3}}) #pull (按值移除) 移除3 my_set.update({'name':"lisi"}, {'$pullAll':{'li':[1,2,3]}}) # pullAll (按值移除全部符合条件的) # 删除数据 # my_set.remove( # <query>, #(可选)删除的文档的条件 # { # justOne: <boolean>, #(可选)如果设为 true 或 1,则只删除一个文档 # writeConcern: <document> #(可选)抛出异常的级别 # } # ) #删除name=lisi的全部记录 my_set.remove({'name': 'lisi'}) #删除name=zhangsan的某个id的记录 id = my_set.find_one({"name":"zhangsan"})["_id"] my_set.remove(id) #删除集合里的所有记录 db.users.remove() # ===========多级路径元素========= # 字典的属性值可以是另一个字典或者列表 # 增加 dict = {"name":"zhangsan", "age":18, "contact" : { "email" : "1234567@qq.com", "iphone" : "11223344"}, "contact1" : [ { "email" : "111111@qq.com", "iphone" : "111"}, { "email" : "222222@qq.com", "iphone" : "222"} ] } my_set.insert(dict) # 查询 users=my_set.find({"contact.iphone":"11223344"}) user = my_set.find_one({"contact.iphone":"11223344"}) # 查询字典值 user1 = my_set.find_one({"contact1.1.iphone":"222"}) # 查询数组值 # 打印输出 print(user["contact"]["email"]) # 修改 result = my_set.update({"contact.iphone":"11223344"},{"$set":{"contact.email":"9999999@qq.com"}}) result = my_set.update({"contact.1.iphone":"222"},{"$set":{"contact.1.email":"222222@qq.com"}}) print(user1["contact1"][1]["email"])
相关文章推荐
- python数据存储系列教程——python中redis数据库操作:连接、增删查改、多级路径
- python数据存储系列教程——python操作sqlite数据库:连接、增删查改、指令执行
- python数据存储系列教程——python中mysql数据库操作:连接、增删查改、指令执行
- Python教程:连接数据库,对数据进行增删改查操作
- python数据存储系列教程——xls文件的读写
- python连接mongodb操作数据示例(mongodb数据库配置类)
- python数据存储系列教程——python对象与json字符串的相互转化,json文件的存储与读取
- python连接mongodb操作数据示例(mongodb数据库配置类)
- python数据存储系列教程——python(pandas)读写csv文件
- python应用系列教程——python中ftp操作:连接、登录、获取目录,重定向、上传下载,删除更改
- Python+Django+SAE系列教程4-----操作文件
- Android基础教程——数据存储之操作数据库SQLlite(一)
- Python 循序渐进教程系列 之基础02 基础数据类型
- 使用Python操作Elasticsearch数据索引的教程
- Python系列视频教程: Django【13讲】第12讲 数据展示
- Android数据存储(3)——SQLite数据库的操作_增删改查完整输出
- asp.netWeb开发中ztree实现无极限增删改查连接数据同步数据库操作
- MongoDB入门教程之细说MongoDB数据库的增删查改操作
- Python 通过thrift接口连接Hbase读取存储数据
- MongoDB入门教程之细说MongoDB数据库的增删查改操作