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 操作的更多相关文章

  1. [MongoDB]Python 操作 MongoDB

    from pymongo import MongoClient mc = MongoClient('localhost',27017) db = mc.users db.users.save({'na ...

  2. python操作mongodb数据库

    一.MongoDB 数据库操作 连接数据库 import pymongo conn = pymongo.Connection() # 连接本机数据库 conn = pymongo.Connection ...

  3. Python 操作 mongodb 数据库

    原文地址:https://serholiu.com/python-mongodb 这几天在学习Python Web开发,于 是做准备做一个博客来练练手,当然,只是练手的,博客界有WordPress这样 ...

  4. python操作mongodb

    # python操作mongodb # 首先,引入第三方模块pymongo,该模块是python用来操作mongodb的 import pymongo # 第二步,设置ip地址,以及表格名称,表格名字 ...

  5. 使用Python操作MongoDB

    MongoDB简介(摘自:http://www.runoob.com/mongodb/mongodb-intro.html) MongoDB 由C++语言编写,是一个基于分布式文件存储的开源数据库系统 ...

  6. python操作三大主流数据库(10)python操作mongodb数据库④mongodb新闻项目实战

    python操作mongodb数据库④mongodb新闻项目实战 参考文档:http://flask-mongoengine.readthedocs.io/en/latest/ 目录: [root@n ...

  7. python操作三大主流数据库(9)python操作mongodb数据库③mongodb odm模型mongoengine的使用

    python操作mongodb数据库③mongodb odm模型mongoengine的使用 文档:http://mongoengine-odm.readthedocs.io/guide/ 安装pip ...

  8. python操作三大主流数据库(8)python操作mongodb数据库②python使用pymongo操作mongodb的增删改查

    python操作mongodb数据库②python使用pymongo操作mongodb的增删改查 文档http://api.mongodb.com/python/current/api/index.h ...

  9. python操作三大主流数据库(7)python操作mongodb数据库①mongodb的安装和简单使用

    python操作mongodb数据库①mongodb的安装和简单使用 参考文档:中文版:http://www.mongoing.com/docs/crud.html英文版:https://docs.m ...

随机推荐

  1. WPF DevExpress ChartControl用法

    WPF常用的第三方控件集,DevExpress中ChartControl的使用 下面介绍如何生成Chart界面: <dxc:ChartControl AnimationMode="On ...

  2. 查看内置命令和非内置命令帮助的几种方法(man、help、info)

    内置命令就是shell内核自带的,因为shell当中自己要进行管理,那么就需要一些命令进行管理,不同的shell肯定有不同的shell命令,我们用type命令就可以看到其的类型,内置shell命令其实 ...

  3. No application encryption key has been specified.

    环境:php7.1.10laravel5.5出现: 解决:在根目录下执行: php artisan key:generate OK问题解决

  4. Netty实战七之EventLoop和线程模型

    简单地说,线程模型指定了操作系统.编程语言.框架或者应用程序的上下文中的线程管理的关键方面.Netty的线程模型强大但又易用,并且和Netty的一贯宗旨一样,旨在简化你的应用程序代码,同时最大限度地提 ...

  5. 大家好,又是新的一天。今天给大家带来一些新的知识:选择器的种类和css的三种样式

    今天我们为大家 选择了 六种 选择器: 1. 标签选择器 2.id选择器 3.class选择器 4.后代选择器 5.子代选择器 6.交集选择器 我们就举三个典型的例子:后代选择器,子代选择器和交集选择 ...

  6. vim编辑器头部自动插入注释和shell的高亮显示

    1.基本语法 语法高亮 :syntax on/off 显示行号 set number/nonumber 自动缩进 set autoindent set cindent 2.自动加入文件头 在etc/v ...

  7. Angular6 项目开发常用时间组件服务

    一.利用Angular 命令行工具生成一个服务. 详情见:<Angular环境搭建>,服务代码如下: import { Injectable } from '@angular/core'; ...

  8. Django的URL路由系统

    一. URL配置 URL配置就像Django所支撑网站的目录.它的本质是URL与要为该URL调用的视图之间的映射表.你就是以这种方式告诉Django,对于哪个URL调用的这段代码. 基本格式 from ...

  9. 通过JS生成由字母与数字组合的随机字符串

    在项目中可能需要随机生成字母数字组成的字符,如生成3-32位长度的字母数字组合的随机字符串(位数不固定)或者生成43位随机字符串(位数固定) 使用Math.random()与toString()方法的 ...

  10. 教你分分钟搞定Docker私有仓库Registry

    一.什么是Docker私有仓库Registry 官方的Docker hub是一个用于管理公共镜像的好地方,我们可以在上面找到我们想要的镜像,也可以把我们自己的镜像推送上去.但是,有时候我们的服务器无法 ...