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. vue 项目中遇到的问题及解决方案

    问题:从码云上提前代码时npm run dev 报错 解决方法 在目录外层新建一个postcss.config.js 放入以下代码 module.exports = {       plugins:  ...

  2. mysql 安装避坑指南 ,mysql 安装后不能启动, mysql 指定版本安装,mysql 5.7.39版本安装,mysql 5.7.36版本安装

    mysql 安装后不能启动,报错如下:请参照本说明第7条的办法解决.mysqld.service: Control process exited, code=exited status=1Please ...

  3. C++ 返回函数指针的函数

    目录 0 前言 1 Function Pointer in C/C++ type 1.1 ordinary function Pointer 1.2 non-static member functio ...

  4. 🔥🔥Java开发者的Python快速实战指南:实用工具之PDF转DOCX文档(可视化界面)

    首先,大家对Python语法的了解已经基本完成,现在我们需要开始进行各种练习.我为大家准备了一些练习题目,比如之前的向量数据库等,这些题目可以参考第三方的SDK来进行操作,文档也是比较完善的.这个过程 ...

  5. 自研、好用的ORM 读写分离功能使用

    Fast Framework 作者 Mr-zhong 代码改变世界.... 一.前言 Fast Framework 基于NET6.0 封装的轻量级 ORM 框架 支持多种数据库 SqlServer O ...

  6. C++ Qt开发:字符串QString容器

    在Qt框架中,QString 是一个强大而灵活的字符串容器,专为处理 Unicode 字符而设计.它提供了许多方便的方法来操作和处理字符串,使得在跨平台开发中能够轻松地进行文本操作.QString 是 ...

  7. IoC入门案例

    1.管理什么?(Service和Dao) 2.如何将被管理的对象告知IoC容器?(配置) 3.被管理的对象交给IoC容器,如何获取IoC容器?(接口) 4.IoC容器得到后,如何从容器中获取到bean ...

  8. flask中使用pyjwt

    **pyjwt使用教程: ** https://pyjwt.readthedocs.io/en/stable/ 使用案例 import datetime from flask import Flask ...

  9. C# 输出的格式转换,占位/补位,字符串拼接、字符串内插法

    // "0"描述:占位符,如果可能,填充位           Console.WriteLine(string.Format("{0:000000}", 12 ...

  10. String与StringBuilder的互相转换

    String与StringBuilder的互相转换 String转StringBulider StringBuilder sb = new StringBuilder(); sb.append(use ...