Python连接mongodb一般使用pymongo模块

1. pymongo模块的简单使用

### MongoDB存储

## 连接MongoDB
import pymongo # 建立连接对象,2种方法皆可
client = pymongo.MongoClient(host='10.0.0.100', port=27017)
client2 = pymongo.MongoClient('mongodb://10.0.0.100:27017/') # 指定数据库,如无则创建
db = client.test
db2 = client2['test'] # 指定集合,如无则创建
collection = db.students
collection2 = db2['students'] # 插入数据,字典格式
stu = {
'name': 'dmr',
'age': '25',
'score': '80',
'gender': 'frail'
}
stu2 = {
'name': 'asx',
'age': '23',
'score': '81',
'gender': 'frail'
}
stu3 = {
'name': 'scy',
'age': '26',
'score': '66',
'gender': 'male'
}
# result = collection.insert_one(stu)
# result2 = collection.insert_many([stu2, stu3])
# print(result2, result.inserted_id) '''
输出内容:
<pymongo.results.InsertManyResult object at 0x0000000002E9D688> 5e70908ba7233089f696168e
''' # 查询,
# find_one()查询到单个结果返回一个字典,如匹配到多个值则返回匹配到的第一个值
# find()则返回一个生成器对象
## 比较符号
# $lt 小于 {'age': {'$lt': 20}}
# $gt 大于 {'age': {'$gt': 20}}
# $lte 小于等于 {'age': {'$lte': 20}}
# $gte 大于等于 {'age': {'$gte': 20}}
# $ne 不等于 {'age': {'$ne': 20}}
# $in 范围内 {'age': {'$in': [20, 24]}}
# $nin 范围外 {'age': {'$nin': [20, 24]}}
## 功能符号
# $regex 匹配正则表达式 {'name': {'$regex': '^d.*'}} 名字以d开头的
# $exists 属性是否存在 {'name': {'$exists': True}} name属性存在则返回存在的内容
# $type 类型判断 {'age': {'$type': 'int'}} age的类型是否为int,匹配则返回匹配的内容
# $text 匹配正则表达式 {'$text': {'$search': 'dm'}} text类型的属性中包含dm字符串
result = collection.find_one({'name': 'dmr'})
result2 = collection.find({'name': 'dmr'})
print(type(result), type(result2))
print(result, result2)
result = collection.find_one({'gender': 'frail'})
result2 = collection.find({'gender': 'frail'})
print(type(result), type(result2))
print(result, result2)
for item in result2:
print(item) '''
输出内容:
<class 'dict'> <class 'pymongo.cursor.Cursor'>
{'_id': ObjectId('5e708dd5b7d59968e4f1ffef'), 'name': 'dmr', 'age': '25', 'score': '80'} <pymongo.cursor.Cursor object at 0x0000000002E9B7B8>
<class 'dict'> <class 'pymongo.cursor.Cursor'>
{'_id': ObjectId('5e709140e0fe6500676f15c3'), 'name': 'dmr', 'age': '25', 'score': '80', 'gender': 'frail'} <pymongo.cursor.Cursor object at 0x0000000002E9BA90>
{'_id': ObjectId('5e709140e0fe6500676f15c3'), 'name': 'dmr', 'age': '25', 'score': '80', 'gender': 'frail'}
{'_id': ObjectId('5e709140e0fe6500676f15c4'), 'name': 'asx', 'age': '23', 'score': '81', 'gender': 'frail'}
''' ## 计数
count = collection.find({'gender': {'$exists': True}}).count()
print(count) ## 排序
results = collection.find().sort('_id', pymongo.ASCENDING)
print(results)
print([i for i in results]) ## 偏移,skip(2)及忽略前2个元素,limit(2)选择前2个元素,后面的元素忽略
results = collection.find().sort('_id', pymongo.ASCENDING).skip(2)
print(results)
print([i for i in results]) ## 更新
old = {
'name': 'dmr'
}
new = {
'age': 20
}
# 直接替换整条内容
result = collection.update(old, new)
result2 = collection.update_one(old, {'$set': new})
# 仅修改new中键值的内容
result3 = collection.update(old, {'$set': new})
result4 = collection.update_many(old, {'$set': new})
print(result, result2)
r2 = collection.find()
for i in r2:
print(i) ## 删除,remove,delete_one,delete_many
result = collection.remove({'name': 'dmr'})
print(result)
result2 = collection.delete_one({'name': 'dmr'})
print(result2.deleted_count)
result3 = collection.delete_many({'name': 'scy'})
print(result3.deleted_count)
result4 = collection.find()
for i in result4:
print(i)

mongodb存储的基本使用的更多相关文章

  1. MongoDB 存储引擎和数据模型设计

    标签: MongoDB NoSQL MongoDB 存储引擎和数据模型设计 1. 存储引擎 1.1 存储引擎是什么 1.2 MongoDB中的默认存储引擎 2. 数据模型设计 2.1 内嵌和引用 2. ...

  2. 了解mongoDB存储结构

    mongoDB 深入浅出一 了解mongoDB存储结构   MongoDB 深入浅出 数据逻辑结构 1 mongoDB中的文档(document) 相当于 关系性数据库的一条一条的记录 2 colle ...

  3. Asp.Net Core Web Api图片上传(一)集成MongoDB存储实例教程

    Asp.Net Core Web Api图片上传及MongoDB存储实例教程(一) 图片或者文件上传相信大家在开发中应该都会用到吧,有的时候还要对图片生成缩略图.那么如何在Asp.Net Core W ...

  4. 使用 MongoDB 存储日志数据

    使用 MongoDB 存储日志数据     线上运行的服务会产生大量的运行及访问日志,日志里会包含一些错误.警告.及用户行为等信息.通常服务会以文本的形式记录日志信息,这样可读性强,方便于日常定位问题 ...

  5. MongoDB存储引擎选择

    MongoDB存储引擎选择 MongoDB存储引擎构架 插件式存储引擎, MongoDB 3.0引入了插件式存储引擎API,为第三方的存储引擎厂商加入MongoDB提供了方便,这一变化无疑参考了MyS ...

  6. MongoDB 存储日志数据

    MongoDB 存储日志数据 https://www.cnblogs.com/nongchaoer/archive/2017/01/11/6274242.html 线上运行的服务会产生大量的运行及访问 ...

  7. 使用 MongoDB 存储商品分类信息

    此文已由作者温正湖授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 这是一篇MongoDB官网上的一篇文章,分析了使用MongoDB存储商品分类信息相比其他数据库的优势,并讲述 ...

  8. 数据存储之非关系型数据库存储----MongoDB存储

    MongoDB存储----文档型数据库 利用pymongo连接MongoDB import pymongo client = pymongo.MongoClient(host='localhost', ...

  9. MongoDB学习笔记(五、MongoDB存储引擎与索引)

    目录: mongoDB存储引擎 mongoDB索引 索引的属性 MongoDB查询优化 mongoDB存储引擎: 目前mongoDB的存储引擎分为三种: 1.WiredTiger存储引擎: a.Con ...

  10. MongoDB 存储引擎选择

    MongoDB存储引擎选择 MongoDB存储引擎构架 插件式存储引擎, MongoDB 3.0引入了插件式存储引擎API,为第三方的存储引擎厂商加入MongoDB提供了方便,这一变化无疑参考了MyS ...

随机推荐

  1. 【技术博客】Flutter—使用网络请求的页面搭建流程、State生命周期、一些组件的应用

    Flutter-使用网络请求的页面搭建流程.State生命周期.一些组件的应用 使用网络请求的页面搭建流程 ​ 在开发APP时,我们常常会遇到如下场景:进入一个页面后,要先进行网络调用,然后使用调用返 ...

  2. [软工顶级理解组] Alpha阶段项目展示

    目录 团队成员 软件介绍 项目简介 预期典型用户 功能描述 预期目标用户数 用户反馈 团队管理 分工协作 项目管理 取舍平衡 代码管理 程序测试 代码规范 文档撰写 继续开发指导性 用户沟通 需求分析 ...

  3. 数字设计中的时钟与约束(gate)

    转载:https://www.cnblogs.com/IClearner/p/6440488.html 最近做完了synopsys的DC workshop,涉及到时钟的建模/约束,这里就来聊聊数字中的 ...

  4. linux wifi热点服务脚本

    最近有关wifi热点的驱动,启动参数都调试完了,验证可以连接传输数据. 首先要在系统启动脚本中插入wifi驱动,配置wlan0的ip insmod /system/vendor/modules/818 ...

  5. 第一个只出现一次字符的位置 牛客网 剑指Offer

    第一个只出现一次字符的位置  牛客网 剑指Offer 题目描述 在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 ...

  6. hdu 5095 Linearization of the kernel functions in SVM(模拟,分类清楚就行)

    题意: INPUT: The input of the first line is an integer T, which is the number of test data (T<120). ...

  7. seq2seq之双向解码

    目录 背景介绍 双向解码 基本思路 数学描述 模型实现 训练方案 双向束搜索 代码参考 思考分析 文章小结 在文章<玩转Keras之seq2seq自动生成标题>中我们已经基本探讨过seq2 ...

  8. Kali安装Parallels Tools过程记录

    最近两天又参加了公司一年一度的网络安全劳动竞赛,之前用过的一个 Kali 忘记密码进不去了 -_- .重新安装了 Kali 2021.3a 之后发现 Parallels Tools 安装失败,记录了一 ...

  9. C++ substr 的两个用法

    substr是C++语言函数,主要功能是复制子字符串,要求从指定位置开始,并具有指定的长度.   basic_string substr(size_type _Off = 0,size_type _C ...

  10. Android-ION内存管理简介

    ION内存管理简介 https://www.jianshu.com/p/4f681f6ddc3b http://kernel.meizu.com/memory%20management%20-%20i ...