import pymongo

client = pymongo.MongoClient(host='localhost',port=27017)#连接数据库

#db = client.test#指定数据库为test
#给数据库起一个名字
'''
###################比较符号归纳########################
符 号 含 义 示 例
..................................................
$lt 小于 {'age':{'$lt':23}}
$gt 大于 {'age':{'$gt':23}}
$lte 小于等于 {'age':{'$lte':23}}
$gte 大于等于 {'age':{'$gte':23}}
$ne 不等于 {'age':{'$ne':23}}
$in 在范围内 {'age':{'$in':[20,23]}}
$nin 不在范围内 {'age':{'$nin':[20,23]}}
#####################################################
符 号 含 义 示 例 示例解释
$regex 匹配正则表达式 {'name': {'$regex': '^M.*'}} name以M开头
$exists 属性是否存在 {'name': {'$exists': True}} name属性存在
$type 类型判断 {'age': {'$type': 'int'}} age的类型为int
$mod 数字模操作 {'age': {'$mod': [5, 0]}} 年龄模5余0
$text 文本查询 {'$text': {'$search': 'Mike'}} text类型的属性中包含Mike字符串
$where 高级条件查询 {'$where': 'obj.fans_count == obj.follows_count'}自身粉丝数等于关注数
''' def sheet_tab():#指定数据库
walden=client['walden']#左边是我们操作的对象,右边同步建立
sheet_tab = walden['sheet_tab']#创建一页
return sheet_tab def insert_one():#插入数据{insert_one(),insert_many()}
#打开文件
path = 'walden.txt'
with open(path,'r') as f:
lines = f.readlines()
#构建数据字典
for index,line in enumerate(lines):
data={
'index':index,
'line':line,
'words':len(line.split())
}
sheet_tab.insert_one(data) def show(sheet_tab):#查询{find(),find_one()},计数{.count()}
for item in sheet_tab.find({}):
print(item['line'])
count = sheet_tab.find().count()
print(count) def delete(sheet_tab):#delete_one(),delete_many()
res=sheet_tab.delete_many({'words':0})
print(res.deleted_count) def sort(collection):#排序{sort()},忽略前两个元素skip(),返回前两个结果limit()
results = collection.find().sort('words', pymongo.ASCENDING)
print([result['line'] for result in results]) # 升序输出
res = collection.find().sort('words', pymongo.ASCENDING).skip(2) # 忽略前两个元素
print([result['line'] for result in res])
res_limit = collection.find().sort('words', pymongo.ASCENDING).skip(2).limit(2) # 先偏移,再返回前两个结果
print([result['line'] for result in res_limit]) def updata(collection):#update_one()方法和update_many()
line='this test with updata---this test with updata---this test with updata---this test with updata---this test with updata---this test with updata'
condition = {'index':0}
old = collection.find_one(condition)
old['line'] = '5b96291104cdab1e8c2d365b'
result = collection.update_one(condition, {'$set': old})
print(result)
print(result.matched_count, result.modified_count)
###这里我们要更新index为0的数据的line:首先指定查询条件,然后将数据查询出来,修改line后调用update()方法将原条件和修改后的数据传入。 if __name__ == '__main__':
updata(sheet_tab())

  

PymongoDB_study的更多相关文章

  1. java web学习总结(十二) -------------------Session

    一.Session简单介绍 在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象),注意:一个浏览器独占一个session对象(默认情况下).因此,在需要保存用户数据时,服务 ...

  2. javaWeb学习-----session

    一.Session简单介绍 在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象),注意:一个浏览器独占一个session对象(默认情况下).因此,在需要保存用户数据时,服务 ...

  3. JavaWeb学习总结(十二)——Session

    一.Session简单介绍 在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象),注意:一个浏览器独占一个session对象(默认情况下).因此,在需要保存用户数据时,服务 ...

  4. java web 学习十二(session)

    一.Session简单介绍 在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象),注意:一个浏览器独占一个session对象(默认情况下).因此,在需要保存用户数据时,服务 ...

  5. JavaWeb学习 (十一)————Session

    一.Session简单介绍 在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象),注意:一个浏览器独占一个session对象(默认情况下).因此,在需要保存用户数据时,服务 ...

  6. session 详解

    一.Session简单介绍 在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象),注意:一个浏览器独占一个session对象(默认情况下).因此,在需要保存用户数据时,服务 ...

  7. JavaWeb学习总结(十):Session简单使用

    一.Session简单介绍 在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象),注意:一个浏览器独占一个session对象(默认情况下).因此,在需要保存用户数据时,服务 ...

  8. session概要

    一.Session简单介绍 在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象),注意:一个浏览器独占一个session对象(默认情况 下).因此,在需要保存用户数据时,服 ...

  9. javaweb基础(12)_session详解

    一.Session简单介绍 在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象),注意:一个浏览器独占一个session对象(默认情况下).因此,在需要保存用户数据时,服务 ...

随机推荐

  1. 在Eclipse中Tomcat配置图片保存路径

    在上一篇二维码功能实现的时候发现,若将二维码保存在项目路径下,服务器起了之后存入的二维码图片是无法实时读取的,所以在Tomcat上配置图片保存位置,将图片保存到项目外的地方. 查找资料的时候看见一个方 ...

  2. day-02

    昨天吧 需要写一个财务管理制度 很是伤脑 我发现一旦用脑过度 就会极其想吃零食 所以 昨天吃了些零食 说这个呢 无非是想说 我昨天学习python的时间很少 而且昨晚安装python软件也出现问题了 ...

  3. 解决wso2 axis2server 跑不起

    wso2ei-6.1.0 运行axis2server报下面找个错误 Server could not start due to class loading issue java.lang.NoSuch ...

  4. Vue+elementui +Springboot session丢失解决方案

    前后端分离项目   由于端口不一致会出现跨域问题   解决跨域以后又会出现前后端sessionID不一致 首先跨域问题    跨域可以在前端配置代理 proxyTable: { '/': {    / ...

  5. linux下安装FTP详细

    一:安装ftp 1.检查是否安装了 ftp :(下图是已安装的效果,没安装没有展示) rpm -qa|grep vsftpd 2.安装指令:(找一个  -y  指令) yum install -y v ...

  6. Exception in thread "main" java.lang.NullPointerException at Class.main

    出现这种问题,可能的原因之一可能是对象数组未初始化. Class[] class = new Class[N]; for(int i = 0; i < N; i++){ class[i] = n ...

  7. 洛谷 P1047 校门外的树

    #include<iostream> #include<vector> #include<algorithm> using namespace std; ]; in ...

  8. Linux 驱动——Button驱动2

    button_drv.c驱动文件: #include <linux/module.h>#include <linux/kernel.h>#include <linux/f ...

  9. CSS第二篇

    给导航设置圆角的代码: c3 里面的属性:border-radius:7px: 1补充盒子问题 (盒子边框紧邻变粗问题)将两个盒子边框重叠并且设置定位提高层级避免盒子重叠,鼠标放上去只显示一个盒子的边 ...

  10. scrum第二次冲刺

    1.本次冲刺内容 实现长大一条龙的登陆注册.    本次冲刺我们团队实现了长大一条龙的登录注册功能.我们的这个项目严格遵守MVC架构,采用前后端分离的策略.我们将登陆注册分为三层,DAO层:负责与数据 ...