Mongodb入门(1)

CURD操作:

1""" 2安装 pymongo 这个库 3pip3 install pymongo 4 5 6在你安装并开启 mongo 之后,就可以使用 pymongo 来连接使用 mongodb 了 7""" 8 9import pymongo 10import random 11 12 13# 连接 mongo 数据库, 主机是本机, 端口是默认的端口 14client = pymongo.MongoClient("mongodb://localhost:27017") 15print('连接数据库成功', client) 16 17# 设置要使用的数据库 18mongodb_name = 'web8' 19# 直接这样就使用数据库了,相当于一个字典 20# 也可以这样用 db = client.web8 21db = client[mongodb_name] 22# client.数据库..记录.字段,mongodb就是这样调用下来的,对dict的支持及其强大,几乎dict无处不在。 23 24 25# 插入数据 26# === 27# mongo 中的 document 相当于 sqlite 中的 table 28# 不需要定义,直接使用 29# 不限定每条数据的字段 30# 直接插入新数据,数据以字典的形式提供 31# 下面的例子中, user 是文档名(表名),不存在的文档会自动创建 32# 每个数据有一个自动创建的字段 _id,可以认为是 mongo 自动创建的主键 33 34def insert(): 35 u = { 36 'aklsfj': False, 37 'askldfj': 'gua', 38 # 'note': '瓜', 39 # 放一个随机值来方便区分不同的数据以便下面的代码使用条件查询 40 # '随机值': random.randint(0, 3), 41 } 42 db.user.insert(u) 43 # 相当于 db['user'].insert 44 45insert() 46 47 48# 查找数据 49# === 50# find 返回一个可迭代对象,使用 list 函数转为数组 51def find(): 52 user_list = list(db.user.find()) 53 print('所有用户', user_list) 54 55 56# find 可以传入参数来做条件查询 57# 具体可以很复杂 我们这里只演示简单的 58# 59# 查询随机值为 1 的所有数据 60def find1(): 61 query = { 62 '随机值': 1, 63 'name': 'gua' 64 } 65 us = list(db.user.find(query)) 66 print('random 1 ', len(us)) 67 # for u in us: 68 # print(u['name']) 69 # 70 # 查询 随机值 大于 1 的所有数据 71 query = { 72 '随机值': { 73 '$gt': 1 74 }, 75 } 76 print('random > 1', list(db.user.find(query))) 77 # 78 # $or 查询 79 query = { 80 '$or': [ 81 { 82 '随机值': 2, 83 }, 84 { 85 'name': 'GUA' 86 } 87 ] 88 } 89 us = list(db.user.find(query)) 90 print('or 查询', us) 91 92 93# find1() 94 95# 96# 此外还有 $lt $let $get $ne $or 等条件 97# 98# 99# 部分查询, 相当于 select xx, yy from 表名 语句 100# 101def find_cond(): 102 query = {} 103 field = { 104 # 字段: 1 表示提取这个字段 105 # 不传的 默认是 0 表示不提取 106 # _id 默认是 1 107 'name': 1, 108 '_id': 0, 109 } 110 print('部分查询,只查询', list(db.user.find(query, field))) 111 112# find_cond() 113 114# 更新数据 115# === 116# 默认更新第一条查询到的数据 117def update(): 118 query = { 119 '随机值': 1, 120 } 121 form = { 122 '$set': { 123 'name': '更新 22222', 124 } 125 } 126 options = { 127 'multi': True, 128 } 129 # 注意, 上课这部分代码出问题了, 现在是修复过的 130 # 相当于 db.user.update(query, form, multi=True) 131 db.user.update(query, form, **options) 132 133 134update() 135 136# 如果想要更新所有查询到的数据 137# 需要加入下面的参数 {'multi': True} 138# db.user.update(query, form, {'multi': True}) 139 140 141# 删除 142# === 143# 删除和 find 是一样的{先query再remove} 144# db.user.remove() 145# 如果是逻辑删除,那就是和update()一样:把_deleted置为True 146 147# all 是给用户使用的查询函数 148def all(): 149 query = { 150 '_deleted': False, 151 } 152 user_list = list(db.user.find(query)) 153 us = [] 154 for u in user_list: 155 u.pop('_deleted') 156 us.append(u) 157 print('所有用户', len(us), us) 158 159# all()
点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )