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 ...
随机推荐
- 对于SQL的Join,在学习起来可能是比较乱的。我们知道,SQL的Join语法有很多inner的,有outer的,有left的,有时候,对于Select出来的结果集是什么样子有点不是很清楚。Coding Horror上有一篇文章,通过文氏图 Venn diagrams 解释了SQL的Join。我觉得清楚易懂,转过来。
对于SQL的Join,在学习起来可能是比较乱的.我们知道,SQL的Join语法有很多inner的,有outer的,有left的,有时候,对于Select出来的结果集是什么样子有点不是很清楚.Codi ...
- 慢查询日志工具mysqlsla的使用
安装mysqlsla源码路径:https://github.com/daniel-nichter/hackmysql.com源码存放路径:/usr/local/src1.获取源码如果没有git命令,请 ...
- Android RecyclerView预览item
参考: Android Tools Attributes listItem 和 Sample Data 的用法 笔记 tools:text TextView可以实现预览,不影响实际的效果 例如: to ...
- MyBatis进阶使用——动态SQL
MyBatis的强大特性之一就是它的动态SQL.如果你有使用JDBC或者其他类似框架的经验,你一定会体会到根据不同条件拼接SQL语句的痛苦.然而利用动态SQL这一特性可以彻底摆脱这一痛苦 MyBati ...
- 你试过不用if撸代码吗?
译者按: 试着不用if撸代码,是件很有趣的事,而且,万一你领会了什么是“数据即代码,代码即数据”呢? 原文: Coding Tip: Try to Code Without If-statements ...
- Python 一键commit文件、目录到SVN服务器
一键commit文件.目录到SVN服务器 by:授客 QQ:1033553122 实现功能 1 测试环境 1 代码show 1 实现功能 一键提交文件.目录到svn 测试环境 Win7 64位 ...
- OpenVDB for Mitsuba
https://github.com/zhoub/mitsuba-vdb
- 性能优化7--App瘦身
1. 前言 如果你对App优化比较敏感,那么Apk安装包的大小就一定不会忽视.关于瘦身的原因,大概有以下几个方面: 对于用户来说,在功能差别不大的前提下,更小的Apk大小意味更少的流量消耗,也意味着更 ...
- 微信小程序中如何获取for循环的item相关值到JS页面的问题
今天小程序开发过程中,遇到了这个棘手的问题.由于我没有前端基础,只是知道一点儿基本的HTML标签,所以卡了好久,特此分享,望后来的你,可以有所收获. measure step 1 *.WXML: ...
- Android Thread 官方说明
Thread官方说明 https://developer.android.google.cn/reference/java/lang/Thread Thread是程序中执行的线程.Java虚拟机允许应 ...