pymongo基本使用

import pymongo
from bson.objectid import ObjectId # 连接方式1
client = pymongo.MongoClient(host='localhost', port=27017) # 连接方式2
# client = pymongo.MongoClient('mongodb://localhost:27017/') # 创建数据库
db = client['test'] # 创建集合
collection = db['students'] # 创建字典数据
student = {
'id': '20170101',
'name': 'Jordan',
'age': 20,
'gender': 'male'
} # 插入单条
result = collection.insert_one(student)
print(result) # 插入多条
student1 = {
'id': '20170101',
'name': 'Jordan',
'age': 20,
'gender': 'male'
} student2 = {
'id': '20170202',
'name': 'Mike',
'age': 21,
'gender': 'male'
}
result = collection.insert_many([student1, student2])
print(result)
print(result.inserted_ids) # 查询一个
result = collection.find_one({'age': 20})
print(type(result))
print(result) # 使用bson查询
# bson称之为二进制的json --> BSON对JSON的一大改进就是,它会将JSON的每一个元素的长度存在元素的头部
result = collection.find_one({'_id': ObjectId('6475f612bb7f540f86a499a3')})
print(type(result))
print(result) # 查询多条
results = collection.find({'age': 20})
print(results) # 返回一个cursor类型 相当于一个生成器
for result in results:
print(result) # 查询所有
results = collection.find()
for result in results:
print(result) # 返回指定条数
results = collection.find().limit(3)
for result in results:
print(result) # 条件查询
results = collection.find({'age': {'$gt': 20}})
for result in results:
print(result)
'''
$gt 大于 $gte 大于等于 $ne 不等于
$lt 小于 $lte 小于等于
$in 在范围内
$nin 不在范围内
''' # 支持正则匹配
results = collection.find({'name': {'$regex': '^M.*'}})
for result in results:
print(result) # 计数
count = collection.count_documents({'name': 'Mike'})
print(count) count2 = collection.count_documents({})
print(count2) # 排序
results = collection.find().sort('name', pymongo.ASCENDING) # 升序 pymongo.ASCENDING 倒序 pymongo.DESCENDING
print([result['name'] for result in results]) # 偏移
results = collection.find().sort('name', pymongo.ASCENDING).skip(2) # 忽略前两个元素
print([result['name'] for result in results]) # 组合使用skip\limit
results = collection.find().sort('name', pymongo.ASCENDING).skip(2).limit(2) # 先偏移两个 再获取两个
print([result['name'] for result in results]) # 数据量千万、亿级别,不要使用偏移,如下是解决方案,这时需要记录好上次查询的_id。
from bson.objectid import ObjectId
collection.find({'_id': {'$gt': ObjectId('593278c815c2602678bb2b8d')}}) # 更新
condition = {'name': 'Mike'}
student = collection.find_one(condition)
print(student)
student['age'] = 24
result = collection.update_one(condition, {'$set': student})
print(result)
print(result.matched_count, result.modified_count) # 匹配的数据条数 影响的数据条数
'''
使用$set操作符号:
这样可以只更新 student 字典内存在的字段。
如果原先还有其他字段,则不会更新,也不会删除。
''' # 将年龄大于20的人,年龄自增1
condition = {'age': {'$gt': 20}}
result = collection.update_one(condition, {'$inc': {'age': 1}}) # 这里会将第一条匹配到的数据 其年龄自增1
print(result)
print(result.matched_count, result.modified_count) # 将所有年龄大于20的人,年龄自增1
condition = {'age': {'$gt': 19}}
result = collection.update_many(condition, {'$inc': {'age': 1}})
print(result)
print(result.matched_count, result.modified_count) # 删除
result = collection.delete_one({'name': 'Jordan'})
print(result)
print(result.deleted_count)
result = collection.delete_many({'age': {'$lt': 25}})
print(result.deleted_count)

【mongodb】pymongo使用的更多相关文章

  1. [mongoDB]PyMongo Cursor Not Found Error

    Python跑一个aggregate脚本,报错:pymongo.errors.CursorNotFound: Cursor not found, cursor id: 35411720832 搜了下原 ...

  2. MongoDB pymongo模块

    安装pymongo模块 pip install pymongo 连接mongodb代码,生成pymongo对象,传入连接服务器相关参数 ip 端口 如果使用指定的账户登录,设置要登录的账户和密码,然后 ...

  3. Python操作MongoDB(PyMongo模块的使用)

    #!/usr/bin/env python #coding:utf-8 # Author:   --<qingfengkuyu> # Purpose: MongoDB的使用 # Creat ...

  4. MongoDB,pymongo

    MongoDB: 数据库,nosql [{ id:1 name:"蔡文姬" age: 16 gender:"女" }, { id:1 name:"蔡文 ...

  5. python操作mongoDB(pymongo的使用)

    pymongo操作手册 连接数据库 方法一(推荐) import pymongo client = pymongo.MongoClient(host="localhost",por ...

  6. python 操作MongoDB pymongo

    python操作MongoDB 1.安装pymongo pip install pymongo 2.连接数据库 启动mongodb服务: 包含mongod.exe文件夹bin :shift+鼠标右键, ...

  7. MongoDB pymongo模块 删除数据

    使用user集合,删除user集合的数据 import pymongo mongo_client = pymongo.MongoClient( host='192.168.0.112', port=2 ...

  8. MongoDB pymongo模块 查询

    查询 mongo_db 类似于 服务器命令行的db 我们可以db.user.find() 查询 find() 需要加上列表 import pymongo mongo_client = pymongo. ...

  9. MongoDB pymongo模块 插入数据

    insert_one(): 对一张不存在表插入数据,他会在插入数据同时自动生成数据表, 例如我要对chat集合插入数据,插入一个空数据 import pymongo mongo_client = py ...

  10. MongoDB pymongo模块 更新数据

    现在chat集合里有3条数据 import pymongo mongo_client = pymongo.MongoClient( host='192.168.0.112', port=27017, ...

随机推荐

  1. 从HumanEval到CoderEval: 你的代码生成模型真的work吗?

    本文分享自华为云社区<从HumanEval到CoderEval: 你的代码生成模型真的work吗?>,作者:华为云软件分析Lab . 本文主要介绍了一个名为CoderEval的代码生成大模 ...

  2. Android 11 后的应用数据和文件

    Android应用数据的保存方式有四种,分别是应用专属存储空间.共享存储.偏好设置.数据库. 应用专属存储空间 应用专属存储空间:存放应用专属文件,主要包括两个空间,卸载后移除 内部存储空间:位于系统 ...

  3. 🔥🔥Java开发者的Python快速进修指南:实战之简易跳表

    前言 之前我已经将Python的基本语法与Java进行了比较,相信大家对Python也有了一定的了解.我不会选择去写一些无用的业务逻辑来加强对Python的理解.相反,我更喜欢通过编写一些数据结构和算 ...

  4. 深入了解MD5加密技术及其应用与局限

    一.MD5简介 MD5(Message Digest Algorithm 5)是一种单向散列函数,由美国密码学家罗纳德·李维斯特(Ronald Linn Rivest)于1991年发明.它主要用于将任 ...

  5. 瀑布图有什么作用?除了excel如何快速制作?

    瀑布图是一种特殊的数据可视化图表,具有以下作用: 1. 对比变化:瀑布图可以清晰地展示数据在不同因素作用下的变化情况.通过将数据分解成各个组成部分,并以阶梯状呈现,可以直观地对比每个因素对总体结果的影 ...

  6. 介绍一款轻量型 Web SCADA 组态软件

    ​ 随着互联网.物联网技术的快速发展,图扑物联基于多年研发积累和私有部署实践打磨.以及对业务场景的深入理解,推出了适用于物联网应用场景的轻量型云组态软件. 该产品采用 B/S 架构,提供 Web 管理 ...

  7. 【Python】【OpenCV】定位条形码(一)

    关于二维码和条形码的检测和识别,在OpenCV中已经有提供了对应的API,cv2.QRCodeDetector() | cv2.barcode_BarcodeDetector() ,相关的实现极其简单 ...

  8. AutoGPT实战

    1.概述 人工智能(AI)的能力持续在全球范围内引起轰动,并对我们日常生活和职业生涯带来重大变革.随着像ChatGPT这样的先进生成型AI模型以及从GPT-3到GPT-4的加速,我们在高级推理.理解更 ...

  9. ASR项目实战-后处理

    本文深入探讨后处理环节. 在本环节要处理的重要特性有分词.断句.标点符号.大小写.数字等的格式归一等. 分词 和NLP.搜索等场景下的分词含义不同.对于拼音类的语言,比如英语.法语等,句子由多个单词组 ...

  10. picker组件增加搜索item条目的功能

    picker组件顶部有搜索框,能搜索条目,如果条目很多的时候,上下翻很麻烦了,而且不容易找到,可以先全查,然后js搜索 wxml <button bindtap="openFlag&q ...