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. python 使用selenium模块爬取同一个url下不同页的内容(浏览器模拟人工翻页)

    页面翻页,下一页可能是一个新的url 也有可能是用js进行页面跳转,url不变,解决方法是实现浏览器模拟人工翻页 目标:爬取同一个url下不同页的数据(上述第二种情况) url:http://www. ...

  2. easyui datagrid 后台返回所有数据,前台分页

    function pagerFilter(data) { if (typeof data.length == 'number' && typeof data.splice == 'fu ...

  3. Java 平时作业五

    使用 I/O 流和文件对象实现目录备份功能. package asg5; import java.io.File; import java.io.FileInputStream; import jav ...

  4. pdf.js使用总结#如何在网页读取并显示PDF格式文档

    pdf.js可以实现在html下直接浏览pdf文档,是一款开源的pdf文档读取解析插件 pdf.js主要包含两个库文件,一个pdf.js和一个pdf.worker.js,一个负责API解析,一个负责核 ...

  5. CSS之box-sizing

    盒子模型是CSS中很重要的概念,它涉及到的无非就是内容(content).填充(padding).边框(border).边界(margin).但是从上两张图可以看出,盒子模型其实有两种类型:标准盒模型 ...

  6. oracle 查询年月日连在一起

    SELECT B.YEAR || replace(lpad(B.MONTH, 2), ' ', '0') || replace(lpad(B.WEEK, 2), ' ', '0') from TT_U ...

  7. python实现批量压缩文件夹

    前段时间碰到一个需要把目录下文件夹压缩的项目,但是度娘里没找到,只好自己写脚本了. #coding:utf-8 import os filePath = raw_input("请输入路径:& ...

  8. CentOS 6 RPM安装包下载地址

    32位系统的RPM安装包的下载地址 http://mirrors.163.com/centos/6/os/i386/Packages/ 64位系统的RPM安装包的下载地址 http://mirrors ...

  9. 转自:阮一峰 Git远程操作详解

      对于git的一些指令还是有些生疏,而且在课堂上讲的只是简单介绍了一些功能,并没有具体深入,看到这篇文章之后,觉得比较详细,所以转了过来. Git是目前最流行的版本管理系统,学会Git几乎成了开发者 ...

  10. TkbmMWClientQuery的计算字段在CalcFields事件触发次数太多

    kbmmw有两处BUG和作者提下,一个是TkbmMWClientQuery的计算字段在CalcFields事件触发次数太多,另一个是在TkbmMemTable的加载数据时字段会执行OnValidate ...