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 ...
随机推荐
- WPF DevExpress ChartControl用法
WPF常用的第三方控件集,DevExpress中ChartControl的使用 下面介绍如何生成Chart界面: <dxc:ChartControl AnimationMode="On ...
- 查看内置命令和非内置命令帮助的几种方法(man、help、info)
内置命令就是shell内核自带的,因为shell当中自己要进行管理,那么就需要一些命令进行管理,不同的shell肯定有不同的shell命令,我们用type命令就可以看到其的类型,内置shell命令其实 ...
- No application encryption key has been specified.
环境:php7.1.10laravel5.5出现: 解决:在根目录下执行: php artisan key:generate OK问题解决
- Netty实战七之EventLoop和线程模型
简单地说,线程模型指定了操作系统.编程语言.框架或者应用程序的上下文中的线程管理的关键方面.Netty的线程模型强大但又易用,并且和Netty的一贯宗旨一样,旨在简化你的应用程序代码,同时最大限度地提 ...
- 大家好,又是新的一天。今天给大家带来一些新的知识:选择器的种类和css的三种样式
今天我们为大家 选择了 六种 选择器: 1. 标签选择器 2.id选择器 3.class选择器 4.后代选择器 5.子代选择器 6.交集选择器 我们就举三个典型的例子:后代选择器,子代选择器和交集选择 ...
- vim编辑器头部自动插入注释和shell的高亮显示
1.基本语法 语法高亮 :syntax on/off 显示行号 set number/nonumber 自动缩进 set autoindent set cindent 2.自动加入文件头 在etc/v ...
- Angular6 项目开发常用时间组件服务
一.利用Angular 命令行工具生成一个服务. 详情见:<Angular环境搭建>,服务代码如下: import { Injectable } from '@angular/core'; ...
- Django的URL路由系统
一. URL配置 URL配置就像Django所支撑网站的目录.它的本质是URL与要为该URL调用的视图之间的映射表.你就是以这种方式告诉Django,对于哪个URL调用的这段代码. 基本格式 from ...
- 通过JS生成由字母与数字组合的随机字符串
在项目中可能需要随机生成字母数字组成的字符,如生成3-32位长度的字母数字组合的随机字符串(位数不固定)或者生成43位随机字符串(位数固定) 使用Math.random()与toString()方法的 ...
- 教你分分钟搞定Docker私有仓库Registry
一.什么是Docker私有仓库Registry 官方的Docker hub是一个用于管理公共镜像的好地方,我们可以在上面找到我们想要的镜像,也可以把我们自己的镜像推送上去.但是,有时候我们的服务器无法 ...