mongoDB python 操作
mongoDB python 操作
import pymongo
mongo_client = pymongo.MongoClient(host="127.0.0.1",port=27017)
DB = mongo_client["users"]
1.查询
res = list(DB.school.find())
res = DB.school.find_one({"class_name":"S16"},{"_id":0,"student":1})
res = DB.school.find_one({"class_name":"S16"})
res = DB.school.find_one({"student.name":"Alex"})
res = DB.school.find_one({'$or':[{"class_name":"S16"},{"school_name":"OldBoy"}]})
res = DB.school.find_one({"userlist":{"$all":[3,4,2]}})
print(res)
res["_id"] = str(res.get("_id"))
import json
a = json.dumps(res)
print(a)
2.增加数据
res = DB.school.insert_one({"name":1})
print(res,res.inserted_id,type(res.inserted_id))
res = DB.school.insert_many([{"name":3},{"name":4},{"name":5}])
print(res,res.inserted_ids)
# 奇葩数据
res = DB.oldboy.insert_one({"user_list":[{"hobby":["抽烟","喝酒"]},{"hobby":[{"name":"car","type":"SUV"},{"name":"motor","type":"BMW"}]}]})
3.修改数据
# $ 存储 array 符合条件元素的下标索引
from bson import ObjectId
res = DB.school.update_one({"_id":ObjectId("5c7e280ed0df65358812ccab")},{"$push":{"userlist":888}})
res = DB.school.update_one({"userlist":888},{"$set":{"userlist.$":666}})
res = DB.school.update_one({"userlist":666},{"$set":{"userlist.0":888}})
print(res,res.modified_count)
"""
{
"_id" : ObjectId("5c7e3fcbd3620e1130463178"),
"user_list" : [
{
"hobby" : [
"抽烟",
"喝酒"
]
},
{
"hobby" : [
{
"name" : "car",
"type" : "SUV"
},
{
"name" : "motor",
"type" : "BMW"
}
]
}
]
}
"""
res = DB.oldboy.find_one({})
print(res)
for index,item in enumerate(res.get("user_list")):
for hobby,hobby_item in enumerate(item.get("hobby")):
if type(hobby_item) == dict:
if hobby_item.get("name") == "motor":
res["user_list"][index]["hobby"][hobby]["type"] = "Suzuki"
DB.oldboy.update_one({"_id":res.get("_id")},{"$set":res})
4.删除
from bson import ObjectId
res = DB.oldboy.delete_one({'_id': ObjectId('5c7e3fcbd3620e1130463178')})
print(res,dir(res),res.deleted_count)
# 选取 跳过 排序
res = list(DB.school.find().limit(5).skip(5))
print(res,len(res))
# 排序
res = list(DB.school.find().limit(5).skip(5).sort("_id",pymongo.ASCENDING))
res = list(DB.school.find().limit(5).skip(5).sort("_id",pymongo.DESCENDING))
print(res,len(res))
# 作业:
# 使用 pymongo 存储聊天记录
"""
[{
"user_talk":"",
"time":""
},
{
"tuling_talk":"",
"time":""
}]
chat : [
[{
"user_talk":"",
"time":""
},{
"tuling_talk":"",
"time":""
}],
]
"""
# 拓展任务:展示聊天记录
mongoDB python 操作的更多相关文章
- [MongoDB]Python 操作 MongoDB
from pymongo import MongoClient mc = MongoClient('localhost',27017) db = mc.users db.users.save({'na ...
- python操作mongodb数据库
一.MongoDB 数据库操作 连接数据库 import pymongo conn = pymongo.Connection() # 连接本机数据库 conn = pymongo.Connection ...
- Python 操作 mongodb 数据库
原文地址:https://serholiu.com/python-mongodb 这几天在学习Python Web开发,于 是做准备做一个博客来练练手,当然,只是练手的,博客界有WordPress这样 ...
- python操作mongodb
# python操作mongodb # 首先,引入第三方模块pymongo,该模块是python用来操作mongodb的 import pymongo # 第二步,设置ip地址,以及表格名称,表格名字 ...
- 使用Python操作MongoDB
MongoDB简介(摘自:http://www.runoob.com/mongodb/mongodb-intro.html) MongoDB 由C++语言编写,是一个基于分布式文件存储的开源数据库系统 ...
- python操作三大主流数据库(10)python操作mongodb数据库④mongodb新闻项目实战
python操作mongodb数据库④mongodb新闻项目实战 参考文档:http://flask-mongoengine.readthedocs.io/en/latest/ 目录: [root@n ...
- python操作三大主流数据库(9)python操作mongodb数据库③mongodb odm模型mongoengine的使用
python操作mongodb数据库③mongodb odm模型mongoengine的使用 文档:http://mongoengine-odm.readthedocs.io/guide/ 安装pip ...
- python操作三大主流数据库(8)python操作mongodb数据库②python使用pymongo操作mongodb的增删改查
python操作mongodb数据库②python使用pymongo操作mongodb的增删改查 文档http://api.mongodb.com/python/current/api/index.h ...
- python操作三大主流数据库(7)python操作mongodb数据库①mongodb的安装和简单使用
python操作mongodb数据库①mongodb的安装和简单使用 参考文档:中文版:http://www.mongoing.com/docs/crud.html英文版:https://docs.m ...
随机推荐
- C-Linux_毫秒级随机值获取
秒级随机值-常用方法: #include <stdlib.h> #include <stdio.h> #include <stdio.h> #include < ...
- mybatis_13一级缓存
1. Mybatis的缓存理解 Mybatis的缓存,包括一级缓存和二级缓存,一级缓存是默认使用的.二级缓存需要手动开启. 一级缓存指的就是sqlsession,在sqlsession中有一个数据区域 ...
- Spring核心——Bean的定义与控制
在Sring核心与设计模式的文章中,分别介绍了Ioc容器和Bean的依赖关系.如果阅读过前2文就会知道,Spring的整个运转机制就是围绕着IoC容器以及Bean展开的.IoC就是一个篮子,所有的Be ...
- Maven(八)Eclipse创建Web项目(复杂方式)
1. 生成标准的Web工程结构 2. 勾选结尾为webapp的包 3. 生成的文件结构如下 3.1 生成的目录结构若存在错误,缺少servlet.api 3.1.1 添加步骤如下 4.生成后存在的缺点 ...
- Advanced redirection features
here are three types of I/O, which each have their own identifier, called a file descriptor: standar ...
- 让MySQL查询更加高效——对查询进行重构
在优化有问题的查询时,目标应该是找到一个更优的方法获得实际需要的结果,而不是一定总是要求从MySQL获取一模一样的结果集 一个复杂查询还是多个简单查询 设计查询的时候一定需要考虑的问题就是,是否需要将 ...
- kafka指定partition的分区规则
博客地址:https://www.cnblogs.com/gnivor/p/5318319.html
- 事件处理程序(HTML)
HTML事件处理程序 通过设置HTML标签特性来绑定事件处理程序. 处理方式(如图): 1:会创建一个封装元素属性值的函数 2:会在这个函数中创建一个event事件对象 <form> &l ...
- PHP无限极分类原理
1.递归:程序调用自身的编程技巧称为递归 2.案例: /** * @param 递归 $[name] */ function deeploop(&$i=1){ echo $i; $i++; i ...
- 从发布订阅模式到redux(一)
最近在学习的过程中,学习了一些关于redux的一些知识,学之前用redux,虽然会用但是实现的原理就不是特别清楚,天天沉迷于搬砖 总是这木搬砖也不是个事啊,就准备开始深入了解一些原理性的东西 首先在看 ...