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. C++之 类型定义语句--typedef

    typedef的作用是给一个已经存在的数据类型起个别名. 使用的语法形式是:typedef   已有类型名  新类型名表;. 新类型名表中可以有多个标识符,它们之间用逗号分开,就是在一个typedef ...

  2. X-template

    <body> <div id="app"> <hello-world></hello-world> </div> < ...

  3. Redis 分布式锁及缓存注释的使用方法

    使用工具:Apache an 测压命令: ab -n 100 -c 100 http://www.baidu.com -n代表模拟100个请求,-c代表模拟100个并发,相当于100个人同时访问 ab ...

  4. 1.3 SQL循环

    1.while循环(1~20的和) 2.while_break_continue(1~20偶数和) 3.if选择象限 4.return:在查询中无条件退出,return后面的语句将不会被执行. 5.g ...

  5. ASP.NET MVC4应用程序配置跨域访问

    开发框架是使用webapi做后台,HTML5做前台,通过ajax调用webapi后台,返回json结果. 用的编译器是visual Studio2013,下面是配置方法 1.web.config文件 ...

  6. Java EE设计模式(主要简单介绍工厂模式,适配器模式和模板方法模式)

    Java EE设计模式分为三种类型,共23种: 创建型模式:单例模式.抽象工厂模式.建造者模式.工厂模式.原型模式. 结构型模式:适配器模式.桥接模式.装饰模式.组合模式.外观模式.享元模式.代理模式 ...

  7. vue2.0 添加监听滚动事件

    export default { data () { return { isFixed: true } }, mounted () { window.addEventListener('scroll' ...

  8. 精进之路之lru

    原理 LRU(Least recently used,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”. 实现1 最常见的实现是 ...

  9. 泊爷带你学go -- 反射的经典玩法

    package main import ( "fmt" "reflect" ) type order struct { ordId int customerId ...

  10. OO第四次作业

    一.论述测试与正确性论证的差异 我认为论述测试代表从理论的角度来进行运行正确性的判断,而正确性测试则是从实践的角度来看待程序的正确性问题.两者之间有着明显的差异. 正确性论证是仅仅从代码的逻辑结构方面 ...