Python3操作MongoDb7最新版创建文档及CRUD基本操作


Python3中类的高级语法及实战

Python3(基础|高级)语法实战(|多线程|多进程|线程池|进程池技术)|多线程安全问题解决方案

Python3数据科学包系列(一):数据分析实战

Python3数据科学包系列(二):数据分析实战

Python3数据科学包系列(三):数据分析实战

Win11查看安装的Python路径及安装的库

Python PEP8 代码规范常见问题及解决方案

Python3操作MySQL8.XX创建表|CRUD基本操作

Python3操作SQLite3创建表主键自增长|CRUD基本操作

anaconda3最新版安装|使用详情|Error: Please select a valid Python interpreter

Python函数绘图与高等代数互融实例(一):正弦函数与余弦函数

Python函数绘图与高等代数互融实例(二):闪点函数

Python函数绘图与高等代数互融实例(三):设置X|Y轴|网格线

Python函数绘图与高等代数互融实例(四):设置X|Y轴参考线|参考区域

Python函数绘图与高等代数互融实例(五): 则线图综合案例

Python3操作MongoDb7最新版创建文档及CRUD基本操作

Centos7安装MongoDB7.xxNoSQL数据库|设置开机启动(骨灰级+保姆级) 

Mongodb7启动报错排除解决方案

Centos7安装Redis7.x最新稳定版|配置开机启动(骨灰级|保姆级)​​​​​​​




高效开发认知升维:

(1) 当前安装的版本,选择对应的版本的文档,本人安装的是最新版: db version v7.1.0-rc4

MongoDB 开发文档手册

 跳转值详细页面如下图所示

 选择码农比较关注的CRUD与当前使用的开发语言(此处,开发语言选择Python)


MongoDB 操作手册----文档在手,啥都有

Mongodb7最新版本文档CRUD

一: Python3连接Mongodb

查看Mongodb版本号:

[root@www bin]# ./mongod --version
db version v7.1.0-rc4
Build Info: {
    "version": "7.1.0-rc4",
    "gitVersion": "7bff196d50a937677dc800e0b08d5b9a6cc4d3b6",
    "openSSLVersion": "OpenSSL 1.0.1e-fips 11 Feb 2013",
    "modules": [],
    "allocator": "tcmalloc",
    "environment": {
        "distmod": "rhel70",
        "distarch": "x86_64",
        "target_arch": "x86_64"
    }
}
 


MongoDB是一个基于分布式文件存储的文档数据库,介于关系数据库和非关系数据库之间,是非关系数据库当中功能最丰富、最像关系数据库的一种NoSQL数据库。MongoDB支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。MongoDB最大的特点是支持的查询语言非常强大,语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引
 

要使用PyMongo操作MongoDB,首先需要初始化数据库连接。

(1)如果 MongoDB 就运行在本地电脑上,而且也没有修改端口或者添加用户名和密码,则初始化MongoClient的实例不需要带参数,直接写为以下格式:


先安装pymongo模块 

PS D:\program_file_worker\python_source_work> pip3 install pymongo
..........................

..........................
Installing collected packages: dnspython, pymongo
Successfully installed dnspython-2.4.2 pymongo-4.5.0

二: 创建集合并插入一条数据

import datetime

import pymongo

'''
  Python3操作mongodb数据库:
  pymongo模块使用MongoClient对象来描述一个数据库客户端,创建对象所需要的参数主要有host和port
  场景的有三种:
  myClient = pymongo.MongoClient()
   myClient = pymongo.MongoClient('192.168.1.111',27017)
  myClient = pymongo.MongoClient("mongodb://192.168.1.111:27017/")
'''

myClient = pymongo.MongoClient('mongodb://192.168.1.111:27017/')

book = {
    'author': 'Mike',
    'text': 'My first book!',
    'tags': ['爬虫', 'python', 'C', 'java', '网络'],
    'date': datetime.datetime.utcnow()
}
# 创建集合
mydb = myClient['booksDB']
# 获得myDatabase数据集合
dblist = mydb.get_collection('booksDB')
print(dblist)
# 插入数据时,才会在服务器响应目录生成对应的booksDB集合
resultData = dblist.insert_one(book)
print(dblist.find_one())

查看服务器集合生成情况,进入服务数据目录如下,没有执行resultData = dblist.insert_one(book) 插入数据操作时,在该目录下没有生成‘booksDB’集合

执行该语句后,resultData = dblist.insert_one(book),在次参考该目录如下,表示已经生成了‘booksDatabase"数据库集合

D:\program_file_worker\anaconda\python.exe D:\program_file_worker\python_source_work\SSO\grammar\ClassGrammarMongodbExecutorInsert.py 
Collection(Database(MongoClient(host=['192.168.1.111:27017'], document_class=dict, tz_aware=False, connect=True), 'booksDB'), 'booksDB')
{'_id': ObjectId('651e4f9b9f93bbe01a987078'), 'author': 'Mike', 'text': 'My first book!', 'tags': ['爬虫', 'python', 'C', 'java', '网络'], 'date': datetime.datetime(2023, 10, 5, 5, 54, 35, 105000)}



三: 插入批量数据 

import datetime

import pymongo

'''
   Python操作Mongodb批量插入数据
'''
myClient = pymongo.MongoClient('mongodb://192.168.1.111:27017/')

books = [
    {
        'author': '老杨',
        'age': 50,
        'text': '我的乖乖!',
        'tags': ['爬虫实战', 'python3', 'C入门到放弃', 'java入门到放弃', '网络黑客'],
        'date': datetime.datetime.utcnow()},
    {
        'author': 'Mike',
        'age': 40,
        'text': 'My first book!',
        'tags': ['爬虫', 'python', 'C', 'java', '网络'],
        'date': datetime.datetime.utcnow()
    },
    {
        'author': 'John',
        'age': 54,
        'text': 'I love you !',
        'tags': ['爬虫入门', 'python胶水语言', 'C高级语言', 'java垫底语言', '网络修理工'],
        'date': datetime.datetime.utcnow()
    },
    {
        'author': '老许',
        'age': 90,
        'text': '房地产大亨!',
        'tags': ['入门房地产', '节制扩张', '适中拓展', '快速扩张', '无节制扩张', '一丘之貉', '落网入狱'],
        'date': datetime.datetime.utcnow()
    }]
# 访问booksDB数据库
booksDB = myClient.booksDB
print(booksDB)
print('-------------------------------------------------------------------------------------')
# 创建集合
mydb = myClient['booksDB']
# 获得booksDB数据集合
dblist = mydb.get_collection('booksDB')
print(dblist)
print()
print('-------------------------------------------------------------------------------------')
# 插入数据时,才会在服务器响应目录生成对应的booksDB集合
try:
    resultData = dblist.insert_many(books)
    # 根据条件检索
    print(dblist.find_one({'author': '老许'}))
    print()
    print('--------------------------------------------------------------------------------------')
    # 循环遍历
    for book in dblist.find():
        print("book: ", book)
except Exception as err:
    print('Mongodb异常: %s' % err)

运行效果:


D:\program_file_worker\anaconda\python.exe D:\program_file_worker\python_source_work\SSO\grammar\ClassGrammarMongodbExecutorBatchInsert.py 
Database(MongoClient(host=['192.168.1.111:27017'], document_class=dict, tz_aware=False, connect=True), 'booksDB')
-------------------------------------------------------------------------------------
Collection(Database(MongoClient(host=['192.168.1.111:27017'], document_class=dict, tz_aware=False, connect=True), 'booksDB'), 'booksDB')

-------------------------------------------------------------------------------------
{'_id': ObjectId('651fafe576635cb7daaaa426'), 'author': '老许', 'age': 150, 'text': '房地产大亨!', 'tags': ['入门房地产', '节制扩张', '适中拓展', '快速扩张', '无节制扩张', '一丘之貉', '落网入狱'], 'date': datetime.datetime(2023, 10, 6, 6, 57, 41, 497000)}

--------------------------------------------------------------------------------------
book:  {'_id': ObjectId('651fafe576635cb7daaaa423'), 'author': '老杨', 'age': 20, 'text': '我的乖乖!', 'tags': ['爬虫实战', 'python3', 'C入门到放弃', 'java入门到放弃', '网络黑客'], 'date': datetime.datetime(2023, 10, 6, 6, 57, 41, 497000)}
book:  {'_id': ObjectId('651fafe576635cb7daaaa424'), 'author': 'Mike', 'age': 25, 'text': 'My first book!', 'tags': ['爬虫', 'python', 'C', 'java', '网络'], 'date': datetime.datetime(2023, 10, 6, 6, 57, 41, 497000)}
book:  {'_id': ObjectId('651fafe576635cb7daaaa425'), 'author': 'John', 'age': 23, 'text': 'I love you !', 'tags': ['爬虫入门', 'python胶水语言', 'C高级语言', 'java垫底语言', '网络修理工'], 'date': datetime.datetime(2023, 10, 6, 6, 57, 41, 497000)}
book:  {'_id': ObjectId('651fafe576635cb7daaaa426'), 'author': '老许', 'age': 150, 'text': '房地产大亨!', 'tags': ['入门房地产', '节制扩张', '适中拓展', '快速扩张', '无节制扩张', '一丘之貉', '落网入狱'], 'date': datetime.datetime(2023, 10, 6, 6, 57, 41, 497000)}
book:  {'_id': ObjectId('651fb01d61245287e271230d'), 'author': '老杨1', 'age': 30, 'text': '我的乖乖!', 'tags': ['爬虫实战', 'python3', 'C入门到放弃', 'java入门到放弃', '网络黑客'], 'date': datetime.datetime(2023, 10, 6, 6, 58, 37, 159000)}
book:  {'_id': ObjectId('651fb01d61245287e271230e'), 'author': 'Mike1', 'age': 45, 'text': 'My first book!', 'tags': ['爬虫', 'python', 'C', 'java', '网络'], 'date': datetime.datetime(2023, 10, 6, 6, 58, 37, 159000)}
book:  {'_id': ObjectId('651fb01d61245287e271230f'), 'author': 'John1', 'age': 33, 'text': 'I love you !', 'tags': ['爬虫入门', 'python胶水语言', 'C高级语言', 'java垫底语言', '网络修理工'], 'date': datetime.datetime(2023, 10, 6, 6, 58, 37, 159000)}
book:  {'_id': ObjectId('651fb01d61245287e2712310'), 'author': '老许1', 'age': 250, 'text': '房地产大亨!', 'tags': ['入门房地产', '节制扩张', '适中拓展', '快速扩张', '无节制扩张', '一丘之貉', '落网入狱'], 'date': datetime.datetime(2023, 10, 6, 6, 58, 37, 159000)}
book:  {'_id': ObjectId('651fb041b9d2621c622cc212'), 'author': '老杨2', 'age': 30, 'text': '我的乖乖!', 'tags': ['爬虫实战', 'python3', 'C入门到放弃', 'java入门到放弃', '网络黑客'], 'date': datetime.datetime(2023, 10, 6, 6, 59, 13, 781000)}
book:  {'_id': ObjectId('651fb041b9d2621c622cc213'), 'author': 'Mike2', 'age': 45, 'text': 'My first book!', 'tags': ['爬虫', 'python', 'C', 'java', '网络'], 'date': datetime.datetime(2023, 10, 6, 6, 59, 13, 781000)}
book:  {'_id': ObjectId('651fb041b9d2621c622cc214'), 'author': 'John2', 'age': 34, 'text': 'I love you !', 'tags': ['爬虫入门', 'python胶水语言', 'C高级语言', 'java垫底语言', '网络修理工'], 'date': datetime.datetime(2023, 10, 6, 6, 59, 13, 781000)}
book:  {'_id': ObjectId('651fb041b9d2621c622cc215'), 'author': '老许2', 'age': 100, 'text': '房地产大亨!', 'tags': ['入门房地产', '节制扩张', '适中拓展', '快速扩张', '无节制扩张', '一丘之貉', '落网入狱'], 'date': datetime.datetime(2023, 10, 6, 6, 59, 13, 781000)}
book:  {'_id': ObjectId('651fb046e6b4f0d2f8776de3'), 'author': '老杨2', 'age': 30, 'text': '我的乖乖!', 'tags': ['爬虫实战', 'python3', 'C入门到放弃', 'java入门到放弃', '网络黑客'], 'date': datetime.datetime(2023, 10, 6, 6, 59, 18, 289000)}
book:  {'_id': ObjectId('651fb046e6b4f0d2f8776de4'), 'author': 'Mike2', 'age': 45, 'text': 'My first book!', 'tags': ['爬虫', 'python', 'C', 'java', '网络'], 'date': datetime.datetime(2023, 10, 6, 6, 59, 18, 289000)}
book:  {'_id': ObjectId('651fb046e6b4f0d2f8776de5'), 'author': 'John2', 'age': 34, 'text': 'I love you !', 'tags': ['爬虫入门', 'python胶水语言', 'C高级语言', 'java垫底语言', '网络修理工'], 'date': datetime.datetime(2023, 10, 6, 6, 59, 18, 289000)}
book:  {'_id': ObjectId('651fb046e6b4f0d2f8776de6'), 'author': '老许2', 'age': 100, 'text': '房地产大亨!', 'tags': ['入门房地产', '节制扩张', '适中拓展', '快速扩张', '无节制扩张', '一丘之貉', '落网入狱'], 'date': datetime.datetime(2023, 10, 6, 6, 59, 18, 289000)}
book:  {'_id': ObjectId('651fb094b0b7ec272738b8a0'), 'author': '老杨', 'age': 50, 'text': '我的乖乖!', 'tags': ['爬虫实战', 'python3', 'C入门到放弃', 'java入门到放弃', '网络黑客'], 'date': datetime.datetime(2023, 10, 6, 7, 0, 36, 217000)}
book:  {'_id': ObjectId('651fb094b0b7ec272738b8a1'), 'author': 'Mike', 'age': 40, 'text': 'My first book!', 'tags': ['爬虫', 'python', 'C', 'java', '网络'], 'date': datetime.datetime(2023, 10, 6, 7, 0, 36, 217000)}
book:  {'_id': ObjectId('651fb094b0b7ec272738b8a2'), 'author': 'John', 'age': 54, 'text': 'I love you !', 'tags': ['爬虫入门', 'python胶水语言', 'C高级语言', 'java垫底语言', '网络修理工'], 'date': datetime.datetime(2023, 10, 6, 7, 0, 36, 217000)}
book:  {'_id': ObjectId('651fb094b0b7ec272738b8a3'), 'author': '老许', 'age': 90, 'text': '房地产大亨!', 'tags': ['入门房地产', '节制扩张', '适中拓展', '快速扩张', '无节制扩张', '一丘之貉', '落网入狱'], 'date': datetime.datetime(2023, 10, 6, 7, 0, 36, 217000)}
book:  {'_id': ObjectId('651fb12f2997663e72d0b67c'), 'author': '老杨', 'age': 50, 'text': '我的乖乖!', 'tags': ['爬虫实战', 'python3', 'C入门到放弃', 'java入门到放弃', '网络黑客'], 'date': datetime.datetime(2023, 10, 6, 7, 3, 11, 510000)}
book:  {'_id': ObjectId('651fb12f2997663e72d0b67d'), 'author': 'Mike', 'age': 40, 'text': 'My first book!', 'tags': ['爬虫', 'python', 'C', 'java', '网络'], 'date': datetime.datetime(2023, 10, 6, 7, 3, 11, 510000)}
book:  {'_id': ObjectId('651fb12f2997663e72d0b67e'), 'author': 'John', 'age': 54, 'text': 'I love you !', 'tags': ['爬虫入门', 'python胶水语言', 'C高级语言', 'java垫底语言', '网络修理工'], 'date': datetime.datetime(2023, 10, 6, 7, 3, 11, 510000)}
book:  {'_id': ObjectId('651fb12f2997663e72d0b67f'), 'author': '老许', 'age': 90, 'text': '房地产大亨!', 'tags': ['入门房地产', '节制扩张', '适中拓展', '快速扩张', '无节制扩张', '一丘之貉', '落网入狱'], 'date': datetime.datetime(2023, 10, 6, 7, 3, 11, 510000)}

Process finished with exit code 0
 

四: 查询记录


import datetime

import pymongo

print()
print()
print()
print("pymongo版本: ", pymongo.version)
print()
print()
print()

'''
   Python操作Mongodb查询数据
'''
myClient = pymongo.MongoClient('mongodb://192.168.1.111:27017/')
# 创建集合(库)
mydb = myClient['booksDB']
# 获得booksDB数据集合(表)
dbTable = mydb.get_collection('booksDB')
print(dbTable)
#  更加条件查询
# select * from book where author='老杨'
resultReader = dbTable.find_one({'author': '老杨'})
print("resultReader: ", resultReader)
resultData = dbTable.find({'author': '老杨'})
print()
print("resultData:", resultData)
# and操作
print("逻辑与操作and")
resultData = dbTable.find_one({'author': '老许', 'text': '房地产大亨!'})
print(resultData)
print()

print("-----------------------------------------------查询作者为老杨的记录----------------------------------- ")
# 返回游标对象(过滤提取author='老杨'的记录)
cursor = dbTable.find({'author': '老杨'})
print(type(cursor))
for book in cursor:
    print("记录类型: :", type(book), '文档里面的每条记录:', book)
print('------------------------------------------------查询所有--------------------------------------------')
# 返回游标对象(所有的记录)
cursor = dbTable.find({})
print(type(cursor))
for book in cursor:
    print("记录类型: :", type(book), '文档里面的每条记录:', book)
print()
print()
print('-----------------------------------逻辑与查询(And)--------------------------------------------------')
cursor = dbTable.find({'author': '老杨', 'age': 50})
for book in cursor:
    print("记录类型: :", type(book), '文档里面的每条记录:', book)
print()
print('----------通配符$all匹配域的值为集合的文档记录;配置tags的值包含[网络修理工 python胶水语言]的文档----------')
matchData = dbTable.find({"tags": {"$all": ['网络修理工', 'python胶水语言']}})
for book in matchData:
    print("记录类型: :", type(book), '文档里面的每条记录:', book)
print()
print('------------------------------------过滤提取age gt 100的文档----------------------------')
filterAgeData = dbTable.find({"age": {"$gt": 100}})
for book in filterAgeData:
    print("记录类型: :", type(book), '文档里面的每条记录:', book)

print()
print('-----------------------------age大于15 | age 小于50------------------------------------')
filterAgeData = dbTable.find({"age": {"$gt": 15, "$lt": 50}})
for book in filterAgeData:
    print("记录类型: :", type(book), '文档里面的每条记录:', book)

运行效果:


D:\program_file_worker\anaconda\python.exe D:\program_file_worker\python_source_work\SSO\grammar\ClassGrammarMongodbExecutorQuery.py 

pymongo版本:  4.5.0

Collection(Database(MongoClient(host=['192.168.1.111:27017'], document_class=dict, tz_aware=False, connect=True), 'booksDB'), 'booksDB')
resultReader:  {'_id': ObjectId('651fafe576635cb7daaaa423'), 'author': '老杨', 'age': 20, 'text': '我的乖乖!', 'tags': ['爬虫实战', 'python3', 'C入门到放弃', 'java入门到放弃', '网络黑客'], 'date': datetime.datetime(2023, 10, 6, 6, 57, 41, 497000)}

resultData: <pymongo.cursor.Cursor object at 0x0000017047B335D0>
逻辑与操作and
{'_id': ObjectId('651fafe576635cb7daaaa426'), 'author': '老许', 'age': 150, 'text': '房地产大亨!', 'tags': ['入门房地产', '节制扩张', '适中拓展', '快速扩张', '无节制扩张', '一丘之貉', '落网入狱'], 'date': datetime.datetime(2023, 10, 6, 6, 57, 41, 497000)}

-----------------------------------------------查询作者为老杨的记录----------------------------------- 
<class 'pymongo.cursor.Cursor'>
记录类型: : <class 'dict'> 文档里面的每条记录: {'_id': ObjectId('651fafe576635cb7daaaa423'), 'author': '老杨', 'age': 20, 'text': '我的乖乖!', 'tags': ['爬虫实战', 'python3', 'C入门到放弃', 'java入门到放弃', '网络黑客'], 'date': datetime.datetime(2023, 10, 6, 6, 57, 41, 497000)}
记录类型: : <class 'dict'> 文档里面的每条记录: {'_id': ObjectId('651fb094b0b7ec272738b8a0'), 'author': '老杨', 'age': 50, 'text': '我的乖乖!', 'tags': ['爬虫实战', 'python3', 'C入门到放弃', 'java入门到放弃', '网络黑客'], 'date': datetime.datetime(2023, 10, 6, 7, 0, 36, 217000)}
记录类型: : <class 'dict'> 文档里面的每条记录: {'_id': ObjectId('651fb12f2997663e72d0b67c'), 'author': '老杨', 'age': 50, 'text': '我的乖乖!', 'tags': ['爬虫实战', 'python3', 'C入门到放弃', 'java入门到放弃', '网络黑客'], 'date': datetime.datetime(2023, 10, 6, 7, 3, 11, 510000)}
------------------------------------------------查询所有--------------------------------------------
<class 'pymongo.cursor.Cursor'>
记录类型: : <class 'dict'> 文档里面的每条记录: {'_id': ObjectId('651fafe576635cb7daaaa423'), 'author': '老杨', 'age': 20, 'text': '我的乖乖!', 'tags': ['爬虫实战', 'python3', 'C入门到放弃', 'java入门到放弃', '网络黑客'], 'date': datetime.datetime(2023, 10, 6, 6, 57, 41, 497000)}
记录类型: : <class 'dict'> 文档里面的每条记录: {'_id': ObjectId('651fafe576635cb7daaaa424'), 'author': 'Mike', 'age': 25, 'text': 'My first book!', 'tags': ['爬虫', 'python', 'C', 'java', '网络'], 'date': datetime.datetime(2023, 10, 6, 6, 57, 41, 497000)}
记录类型: : <class 'dict'> 文档里面的每条记录: {'_id': ObjectId('651fafe576635cb7daaaa425'), 'author': 'John', 'age': 23, 'text': 'I love you !', 'tags': ['爬虫入门', 'python胶水语言', 'C高级语言', 'java垫底语言', '网络修理工'], 'date': datetime.datetime(2023, 10, 6, 6, 57, 41, 497000)}
记录类型: : <class 'dict'> 文档里面的每条记录: {'_id': ObjectId('651fafe576635cb7daaaa426'), 'author': '老许', 'age': 150, 'text': '房地产大亨!', 'tags': ['入门房地产', '节制扩张', '适中拓展', '快速扩张', '无节制扩张', '一丘之貉', '落网入狱'], 'date': datetime.datetime(2023, 10, 6, 6, 57, 41, 497000)}
记录类型: : <class 'dict'> 文档里面的每条记录: {'_id': ObjectId('651fb01d61245287e271230d'), 'author': '老杨1', 'age': 30, 'text': '我的乖乖!', 'tags': ['爬虫实战', 'python3', 'C入门到放弃', 'java入门到放弃', '网络黑客'], 'date': datetime.datetime(2023, 10, 6, 6, 58, 37, 159000)}
记录类型: : <class 'dict'> 文档里面的每条记录: {'_id': ObjectId('651fb01d61245287e271230e'), 'author': 'Mike1', 'age': 45, 'text': 'My first book!', 'tags': ['爬虫', 'python', 'C', 'java', '网络'], 'date': datetime.datetime(2023, 10, 6, 6, 58, 37, 159000)}
记录类型: : <class 'dict'> 文档里面的每条记录: {'_id': ObjectId('651fb01d61245287e271230f'), 'author': 'John1', 'age': 33, 'text': 'I love you !', 'tags': ['爬虫入门', 'python胶水语言', 'C高级语言', 'java垫底语言', '网络修理工'], 'date': datetime.datetime(2023, 10, 6, 6, 58, 37, 159000)}
记录类型: : <class 'dict'> 文档里面的每条记录: {'_id': ObjectId('651fb01d61245287e2712310'), 'author': '老许1', 'age': 250, 'text': '房地产大亨!', 'tags': ['入门房地产', '节制扩张', '适中拓展', '快速扩张', '无节制扩张', '一丘之貉', '落网入狱'], 'date': datetime.datetime(2023, 10, 6, 6, 58, 37, 159000)}
记录类型: : <class 'dict'> 文档里面的每条记录: {'_id': ObjectId('651fb041b9d2621c622cc212'), 'author': '老杨2', 'age': 30, 'text': '我的乖乖!', 'tags': ['爬虫实战', 'python3', 'C入门到放弃', 'java入门到放弃', '网络黑客'], 'date': datetime.datetime(2023, 10, 6, 6, 59, 13, 781000)}
记录类型: : <class 'dict'> 文档里面的每条记录: {'_id': ObjectId('651fb041b9d2621c622cc213'), 'author': 'Mike2', 'age': 45, 'text': 'My first book!', 'tags': ['爬虫', 'python', 'C', 'java', '网络'], 'date': datetime.datetime(2023, 10, 6, 6, 59, 13, 781000)}
记录类型: : <class 'dict'> 文档里面的每条记录: {'_id': ObjectId('651fb041b9d2621c622cc214'), 'author': 'John2', 'age': 34, 'text': 'I love you !', 'tags': ['爬虫入门', 'python胶水语言', 'C高级语言', 'java垫底语言', '网络修理工'], 'date': datetime.datetime(2023, 10, 6, 6, 59, 13, 781000)}
记录类型: : <class 'dict'> 文档里面的每条记录: {'_id': ObjectId('651fb041b9d2621c622cc215'), 'author': '老许2', 'age': 100, 'text': '房地产大亨!', 'tags': ['入门房地产', '节制扩张', '适中拓展', '快速扩张', '无节制扩张', '一丘之貉', '落网入狱'], 'date': datetime.datetime(2023, 10, 6, 6, 59, 13, 781000)}
记录类型: : <class 'dict'> 文档里面的每条记录: {'_id': ObjectId('651fb046e6b4f0d2f8776de3'), 'author': '老杨2', 'age': 30, 'text': '我的乖乖!', 'tags': ['爬虫实战', 'python3', 'C入门到放弃', 'java入门到放弃', '网络黑客'], 'date': datetime.datetime(2023, 10, 6, 6, 59, 18, 289000)}
记录类型: : <class 'dict'> 文档里面的每条记录: {'_id': ObjectId('651fb046e6b4f0d2f8776de4'), 'author': 'Mike2', 'age': 45, 'text': 'My first book!', 'tags': ['爬虫', 'python', 'C', 'java', '网络'], 'date': datetime.datetime(2023, 10, 6, 6, 59, 18, 289000)}
记录类型: : <class 'dict'> 文档里面的每条记录: {'_id': ObjectId('651fb046e6b4f0d2f8776de5'), 'author': 'John2', 'age': 34, 'text': 'I love you !', 'tags': ['爬虫入门', 'python胶水语言', 'C高级语言', 'java垫底语言', '网络修理工'], 'date': datetime.datetime(2023, 10, 6, 6, 59, 18, 289000)}
记录类型: : <class 'dict'> 文档里面的每条记录: {'_id': ObjectId('651fb046e6b4f0d2f8776de6'), 'author': '老许2', 'age': 100, 'text': '房地产大亨!', 'tags': ['入门房地产', '节制扩张', '适中拓展', '快速扩张', '无节制扩张', '一丘之貉', '落网入狱'], 'date': datetime.datetime(2023, 10, 6, 6, 59, 18, 289000)}
记录类型: : <class 'dict'> 文档里面的每条记录: {'_id': ObjectId('651fb094b0b7ec272738b8a0'), 'author': '老杨', 'age': 50, 'text': '我的乖乖!', 'tags': ['爬虫实战', 'python3', 'C入门到放弃', 'java入门到放弃', '网络黑客'], 'date': datetime.datetime(2023, 10, 6, 7, 0, 36, 217000)}
记录类型: : <class 'dict'> 文档里面的每条记录: {'_id': ObjectId('651fb094b0b7ec272738b8a1'), 'author': 'Mike', 'age': 40, 'text': 'My first book!', 'tags': ['爬虫', 'python', 'C', 'java', '网络'], 'date': datetime.datetime(2023, 10, 6, 7, 0, 36, 217000)}
记录类型: : <class 'dict'> 文档里面的每条记录: {'_id': ObjectId('651fb094b0b7ec272738b8a2'), 'author': 'John', 'age': 54, 'text': 'I love you !', 'tags': ['爬虫入门', 'python胶水语言', 'C高级语言', 'java垫底语言', '网络修理工'], 'date': datetime.datetime(2023, 10, 6, 7, 0, 36, 217000)}
记录类型: : <class 'dict'> 文档里面的每条记录: {'_id': ObjectId('651fb094b0b7ec272738b8a3'), 'author': '老许', 'age': 90, 'text': '房地产大亨!', 'tags': ['入门房地产', '节制扩张', '适中拓展', '快速扩张', '无节制扩张', '一丘之貉', '落网入狱'], 'date': datetime.datetime(2023, 10, 6, 7, 0, 36, 217000)}
记录类型: : <class 'dict'> 文档里面的每条记录: {'_id': ObjectId('651fb12f2997663e72d0b67c'), 'author': '老杨', 'age': 50, 'text': '我的乖乖!', 'tags': ['爬虫实战', 'python3', 'C入门到放弃', 'java入门到放弃', '网络黑客'], 'date': datetime.datetime(2023, 10, 6, 7, 3, 11, 510000)}
记录类型: : <class 'dict'> 文档里面的每条记录: {'_id': ObjectId('651fb12f2997663e72d0b67d'), 'author': 'Mike', 'age': 40, 'text': 'My first book!', 'tags': ['爬虫', 'python', 'C', 'java', '网络'], 'date': datetime.datetime(2023, 10, 6, 7, 3, 11, 510000)}
记录类型: : <class 'dict'> 文档里面的每条记录: {'_id': ObjectId('651fb12f2997663e72d0b67e'), 'author': 'John', 'age': 54, 'text': 'I love you !', 'tags': ['爬虫入门', 'python胶水语言', 'C高级语言', 'java垫底语言', '网络修理工'], 'date': datetime.datetime(2023, 10, 6, 7, 3, 11, 510000)}
记录类型: : <class 'dict'> 文档里面的每条记录: {'_id': ObjectId('651fb12f2997663e72d0b67f'), 'author': '老许', 'age': 90, 'text': '房地产大亨!', 'tags': ['入门房地产', '节制扩张', '适中拓展', '快速扩张', '无节制扩张', '一丘之貉', '落网入狱'], 'date': datetime.datetime(2023, 10, 6, 7, 3, 11, 510000)}


-----------------------------------逻辑与查询(And)--------------------------------------------------
记录类型: : <class 'dict'> 文档里面的每条记录: {'_id': ObjectId('651fb094b0b7ec272738b8a0'), 'author': '老杨', 'age': 50, 'text': '我的乖乖!', 'tags': ['爬虫实战', 'python3', 'C入门到放弃', 'java入门到放弃', '网络黑客'], 'date': datetime.datetime(2023, 10, 6, 7, 0, 36, 217000)}
记录类型: : <class 'dict'> 文档里面的每条记录: {'_id': ObjectId('651fb12f2997663e72d0b67c'), 'author': '老杨', 'age': 50, 'text': '我的乖乖!', 'tags': ['爬虫实战', 'python3', 'C入门到放弃', 'java入门到放弃', '网络黑客'], 'date': datetime.datetime(2023, 10, 6, 7, 3, 11, 510000)}

----------通配符$all匹配域的值为集合的文档记录;配置tags的值包含[网络修理工 python胶水语言]的文档----------
记录类型: : <class 'dict'> 文档里面的每条记录: {'_id': ObjectId('651fafe576635cb7daaaa425'), 'author': 'John', 'age': 23, 'text': 'I love you !', 'tags': ['爬虫入门', 'python胶水语言', 'C高级语言', 'java垫底语言', '网络修理工'], 'date': datetime.datetime(2023, 10, 6, 6, 57, 41, 497000)}
记录类型: : <class 'dict'> 文档里面的每条记录: {'_id': ObjectId('651fb01d61245287e271230f'), 'author': 'John1', 'age': 33, 'text': 'I love you !', 'tags': ['爬虫入门', 'python胶水语言', 'C高级语言', 'java垫底语言', '网络修理工'], 'date': datetime.datetime(2023, 10, 6, 6, 58, 37, 159000)}
记录类型: : <class 'dict'> 文档里面的每条记录: {'_id': ObjectId('651fb041b9d2621c622cc214'), 'author': 'John2', 'age': 34, 'text': 'I love you !', 'tags': ['爬虫入门', 'python胶水语言', 'C高级语言', 'java垫底语言', '网络修理工'], 'date': datetime.datetime(2023, 10, 6, 6, 59, 13, 781000)}
记录类型: : <class 'dict'> 文档里面的每条记录: {'_id': ObjectId('651fb046e6b4f0d2f8776de5'), 'author': 'John2', 'age': 34, 'text': 'I love you !', 'tags': ['爬虫入门', 'python胶水语言', 'C高级语言', 'java垫底语言', '网络修理工'], 'date': datetime.datetime(2023, 10, 6, 6, 59, 18, 289000)}
记录类型: : <class 'dict'> 文档里面的每条记录: {'_id': ObjectId('651fb094b0b7ec272738b8a2'), 'author': 'John', 'age': 54, 'text': 'I love you !', 'tags': ['爬虫入门', 'python胶水语言', 'C高级语言', 'java垫底语言', '网络修理工'], 'date': datetime.datetime(2023, 10, 6, 7, 0, 36, 217000)}
记录类型: : <class 'dict'> 文档里面的每条记录: {'_id': ObjectId('651fb12f2997663e72d0b67e'), 'author': 'John', 'age': 54, 'text': 'I love you !', 'tags': ['爬虫入门', 'python胶水语言', 'C高级语言', 'java垫底语言', '网络修理工'], 'date': datetime.datetime(2023, 10, 6, 7, 3, 11, 510000)}

------------------------------------过滤提取age gt 100的文档----------------------------
记录类型: : <class 'dict'> 文档里面的每条记录: {'_id': ObjectId('651fafe576635cb7daaaa426'), 'author': '老许', 'age': 150, 'text': '房地产大亨!', 'tags': ['入门房地产', '节制扩张', '适中拓展', '快速扩张', '无节制扩张', '一丘之貉', '落网入狱'], 'date': datetime.datetime(2023, 10, 6, 6, 57, 41, 497000)}
记录类型: : <class 'dict'> 文档里面的每条记录: {'_id': ObjectId('651fb01d61245287e2712310'), 'author': '老许1', 'age': 250, 'text': '房地产大亨!', 'tags': ['入门房地产', '节制扩张', '适中拓展', '快速扩张', '无节制扩张', '一丘之貉', '落网入狱'], 'date': datetime.datetime(2023, 10, 6, 6, 58, 37, 159000)}

-----------------------------age大于15 | age 小于50------------------------------------
记录类型: : <class 'dict'> 文档里面的每条记录: {'_id': ObjectId('651fafe576635cb7daaaa423'), 'author': '老杨', 'age': 20, 'text': '我的乖乖!', 'tags': ['爬虫实战', 'python3', 'C入门到放弃', 'java入门到放弃', '网络黑客'], 'date': datetime.datetime(2023, 10, 6, 6, 57, 41, 497000)}
记录类型: : <class 'dict'> 文档里面的每条记录: {'_id': ObjectId('651fafe576635cb7daaaa424'), 'author': 'Mike', 'age': 25, 'text': 'My first book!', 'tags': ['爬虫', 'python', 'C', 'java', '网络'], 'date': datetime.datetime(2023, 10, 6, 6, 57, 41, 497000)}
记录类型: : <class 'dict'> 文档里面的每条记录: {'_id': ObjectId('651fafe576635cb7daaaa425'), 'author': 'John', 'age': 23, 'text': 'I love you !', 'tags': ['爬虫入门', 'python胶水语言', 'C高级语言', 'java垫底语言', '网络修理工'], 'date': datetime.datetime(2023, 10, 6, 6, 57, 41, 497000)}
记录类型: : <class 'dict'> 文档里面的每条记录: {'_id': ObjectId('651fb01d61245287e271230d'), 'author': '老杨1', 'age': 30, 'text': '我的乖乖!', 'tags': ['爬虫实战', 'python3', 'C入门到放弃', 'java入门到放弃', '网络黑客'], 'date': datetime.datetime(2023, 10, 6, 6, 58, 37, 159000)}
记录类型: : <class 'dict'> 文档里面的每条记录: {'_id': ObjectId('651fb01d61245287e271230e'), 'author': 'Mike1', 'age': 45, 'text': 'My first book!', 'tags': ['爬虫', 'python', 'C', 'java', '网络'], 'date': datetime.datetime(2023, 10, 6, 6, 58, 37, 159000)}
记录类型: : <class 'dict'> 文档里面的每条记录: {'_id': ObjectId('651fb01d61245287e271230f'), 'author': 'John1', 'age': 33, 'text': 'I love you !', 'tags': ['爬虫入门', 'python胶水语言', 'C高级语言', 'java垫底语言', '网络修理工'], 'date': datetime.datetime(2023, 10, 6, 6, 58, 37, 159000)}
记录类型: : <class 'dict'> 文档里面的每条记录: {'_id': ObjectId('651fb041b9d2621c622cc212'), 'author': '老杨2', 'age': 30, 'text': '我的乖乖!', 'tags': ['爬虫实战', 'python3', 'C入门到放弃', 'java入门到放弃', '网络黑客'], 'date': datetime.datetime(2023, 10, 6, 6, 59, 13, 781000)}
记录类型: : <class 'dict'> 文档里面的每条记录: {'_id': ObjectId('651fb041b9d2621c622cc213'), 'author': 'Mike2', 'age': 45, 'text': 'My first book!', 'tags': ['爬虫', 'python', 'C', 'java', '网络'], 'date': datetime.datetime(2023, 10, 6, 6, 59, 13, 781000)}
记录类型: : <class 'dict'> 文档里面的每条记录: {'_id': ObjectId('651fb041b9d2621c622cc214'), 'author': 'John2', 'age': 34, 'text': 'I love you !', 'tags': ['爬虫入门', 'python胶水语言', 'C高级语言', 'java垫底语言', '网络修理工'], 'date': datetime.datetime(2023, 10, 6, 6, 59, 13, 781000)}
记录类型: : <class 'dict'> 文档里面的每条记录: {'_id': ObjectId('651fb046e6b4f0d2f8776de3'), 'author': '老杨2', 'age': 30, 'text': '我的乖乖!', 'tags': ['爬虫实战', 'python3', 'C入门到放弃', 'java入门到放弃', '网络黑客'], 'date': datetime.datetime(2023, 10, 6, 6, 59, 18, 289000)}
记录类型: : <class 'dict'> 文档里面的每条记录: {'_id': ObjectId('651fb046e6b4f0d2f8776de4'), 'author': 'Mike2', 'age': 45, 'text': 'My first book!', 'tags': ['爬虫', 'python', 'C', 'java', '网络'], 'date': datetime.datetime(2023, 10, 6, 6, 59, 18, 289000)}
记录类型: : <class 'dict'> 文档里面的每条记录: {'_id': ObjectId('651fb046e6b4f0d2f8776de5'), 'author': 'John2', 'age': 34, 'text': 'I love you !', 'tags': ['爬虫入门', 'python胶水语言', 'C高级语言', 'java垫底语言', '网络修理工'], 'date': datetime.datetime(2023, 10, 6, 6, 59, 18, 289000)}
记录类型: : <class 'dict'> 文档里面的每条记录: {'_id': ObjectId('651fb094b0b7ec272738b8a1'), 'author': 'Mike', 'age': 40, 'text': 'My first book!', 'tags': ['爬虫', 'python', 'C', 'java', '网络'], 'date': datetime.datetime(2023, 10, 6, 7, 0, 36, 217000)}
记录类型: : <class 'dict'> 文档里面的每条记录: {'_id': ObjectId('651fb12f2997663e72d0b67d'), 'author': 'Mike', 'age': 40, 'text': 'My first book!', 'tags': ['爬虫', 'python', 'C', 'java', '网络'], 'date': datetime.datetime(2023, 10, 6, 7, 3, 11, 510000)}

Process finished with exit code 0
 


更加详细查询查看官网: 

Mongodb Query 详细查询文档

五: 更新记录

import pymongo

print()
print()
print()
print("pymongo版本: ", pymongo.version)
print()
print()
print()

'''
   Python操作Mongodb更新记录:
      常用更新操作有下面三个方法:
      pymongo.collection.Collection.update_one
      pymongo.collection.Collection.update_many
      pymongo.collection.Collection.replace_one
'''
myClient = pymongo.MongoClient('mongodb://192.168.1.111:27017/')
# 创建集合(库)
mydb = myClient['booksDB']
# 获得booksDB数据集合(表)
dbTable = mydb.get_collection('booksDB')

updateResult = dbTable.update_one(
    {"author": "老杨"},
    {"$set": {"text": "你好,老杨,欢迎来到Python3操作mongodb数据库", "age": 50},
     "$currentDate": {"lastModified": True}
     }  # 不存在的域会自动添加
)
print("updateResult(修改的数量):", updateResult.modified_count)
# 返回游标对象(所有的记录)
cursor = dbTable.find({"author": "老杨"})
print(type(cursor))
for book in cursor:
    print("记录类型: :", type(book), '文档里面的每条记录:', book)
print()

print('--------------------------批量修改-----------------------------')

batchUpdateResult = dbTable.update_many(
    {"age": {"$gt": 100}},
    {"$set": {"author": "许老板|房地产大佬", "text": "房产大佬,大忽悠"}, "$currentDate": {"lastModified": True}},
)
print("batchUpdateResult(受影响的行数): ", batchUpdateResult.modified_count)
filterAgeData = dbTable.find({"age": {"$gt": 100}})
for book in filterAgeData:
    print("记录类型: :", type(book), '文档里面的每条记录:', book)

batchReplaceUpdateResult = dbTable.replace_one(
    {"age": {"$eq": 100}},
    {
        "age": 150,
        'author': '许老板|房地产大佬',
        'text': '房产大忽悠',
        "tags": [{"warehouse": "A", "体重": 180}, {"warehouse": "B", "超标": 20}],
    }
)
print("batchReplaceUpdateResult(受影响的行数): ", batchReplaceUpdateResult.modified_count)
print()
resultData = dbTable.find_one({'age': 150})
print('被修改的记录为')
print(resultData)

运行效果:


D:\program_file_worker\anaconda\python.exe D:\program_file_worker\python_source_work\SSO\grammar\ClassGrammarMongodbExecutorUpdate.py 

pymongo版本:  4.5.0

updateResult(修改的数量): 1
<class 'pymongo.cursor.Cursor'>
记录类型: : <class 'dict'> 文档里面的每条记录: {'_id': ObjectId('651fafe576635cb7daaaa423'), 'author': '老杨', 'age': 50, 'text': '你好,老杨,欢迎来到Python3操作mongodb数据库', 'tags': ['爬虫实战', 'python3', 'C入门到放弃', 'java入门到放弃', '网络黑客'], 'date': datetime.datetime(2023, 10, 6, 6, 57, 41, 497000), 'lastModified': datetime.datetime(2023, 10, 6, 11, 5, 1, 431000)}
记录类型: : <class 'dict'> 文档里面的每条记录: {'_id': ObjectId('651fb094b0b7ec272738b8a0'), 'author': '老杨', 'age': 50, 'text': '我的乖乖!', 'tags': ['爬虫实战', 'python3', 'C入门到放弃', 'java入门到放弃', '网络黑客'], 'date': datetime.datetime(2023, 10, 6, 7, 0, 36, 217000)}
记录类型: : <class 'dict'> 文档里面的每条记录: {'_id': ObjectId('651fb12f2997663e72d0b67c'), 'author': '老杨', 'age': 50, 'text': '我的乖乖!', 'tags': ['爬虫实战', 'python3', 'C入门到放弃', 'java入门到放弃', '网络黑客'], 'date': datetime.datetime(2023, 10, 6, 7, 3, 11, 510000)}

--------------------------批量修改-----------------------------
batchUpdateResult(受影响的行数):  1
记录类型: : <class 'dict'> 文档里面的每条记录: {'_id': ObjectId('651fb01d61245287e2712310'), 'author': '许老板|房地产大佬', 'age': 250, 'text': '房产大佬,大忽悠', 'tags': ['入门房地产', '节制扩张', '适中拓展', '快速扩张', '无节制扩张', '一丘之貉', '落网入狱'], 'date': datetime.datetime(2023, 10, 6, 6, 58, 37, 159000), 'lastModified': datetime.datetime(2023, 10, 6, 11, 5, 1, 435000)}
batchReplaceUpdateResult(受影响的行数):  1

被修改的记录为
{'_id': ObjectId('651fb041b9d2621c622cc215'), 'age': 150, 'author': '许老板|房地产大佬', 'text': '房产大忽悠', 'tags': [{'warehouse': 'A', '体重': 180}, {'warehouse': 'B', '超标': 20}]}

Process finished with exit code 0
 


详细更新查看官方文档:  Mongodb更新文档详细操作


六: 删除记录


import pymongo

print()
print()
print()
print("pymongo版本: ", pymongo.version)
print()
print()
print()

'''
   Python操作Mongodb删除记录:
     
'''
myClient = pymongo.MongoClient('mongodb://192.168.1.111:27017/')
# 创建集合(库)
mydb = myClient['inventory']
# 获得booksDB数据集合(表)
dbTable = mydb.get_collection('inventory')
# 插入多条数据
insertManyResult = dbTable.insert_many(
    [
        {
            "name": "journal",
            "weight": 250,
            "size": {"h": 14, "w": 21, "uom": "cm"},
            "status": "A",
        },
        {
            "name": "notebook",
            "weight": 500,
            "size": {"h": 8.5, "w": 11, "uom": "in"},
            "status": "P",
        },
        {
            "name": "paper",
            "weight": 400,
            "size": {"h": 8.5, "w": 11, "uom": "in"},
            "status": "D",
        },
        {
            "name": "planner",
            "weight": 750,
            "size": {"h": 22.85, "w": 30, "uom": "cm"},
            "status": "D",
        },
        {
            "name": "postcard",
            "weight": 25,
            "size": {"h": 10, "w": 15.25, "uom": "cm"},
            "status": "A",
        }
    ]
)

print("批量插入数据(插入返回的每条记录id集合): ", insertManyResult.inserted_ids)
for autoRecordId in insertManyResult.inserted_ids:
    print("每条记录ID: %s" % autoRecordId)

print()
print('----------------------------------查询所有文档记录---------------------------------')
allRecordData = dbTable.find({})
for record in allRecordData:
    print('文档记录ID:%s' % record['_id'], ', 文档记录数据: ', record)

print()
print("----------------------添加过滤多条删除---------------------------------------------------------------")
allDeleteAfterRecordData = dbTable.delete_many({"status": "A"})
print("有多少条数据被删除: %d 条" % allDeleteAfterRecordData.deleted_count)
print('----------------------------------查询所有文档记录---------------------------------')
deleteAfterRecordData = dbTable.find({})
for record in deleteAfterRecordData:
    print('文档记录ID:%s' % record['_id'], ', 文档记录数据: ', record)

print()
print()
print("删除发生在那张表: %s" % deleteAfterRecordData.collection.name)
print()
print('删除单条记录')
deleteResult = dbTable.delete_one({"status": "D"})
print("删除的影响数: ", deleteResult.deleted_count)

print()
print('----------------------------删除所有的记录------------------------------')
DeleteResult = dbTable.delete_many({})
print("删除文档记录影响的条数: %d" % DeleteResult.deleted_count)

运行效果:


D:\program_file_worker\anaconda\python.exe D:\program_file_worker\python_source_work\SSO\grammar\ClassGrammarMongodbExecutorDelete.py 

pymongo版本:  4.5.0

批量插入数据(插入返回的每条记录id集合):  [ObjectId('65201789ca4dfc62a0ae8e82'), ObjectId('65201789ca4dfc62a0ae8e83'), ObjectId('65201789ca4dfc62a0ae8e84'), ObjectId('65201789ca4dfc62a0ae8e85'), ObjectId('65201789ca4dfc62a0ae8e86')]
每条记录ID: 65201789ca4dfc62a0ae8e82
每条记录ID: 65201789ca4dfc62a0ae8e83
每条记录ID: 65201789ca4dfc62a0ae8e84
每条记录ID: 65201789ca4dfc62a0ae8e85
每条记录ID: 65201789ca4dfc62a0ae8e86

----------------------------------查询所有文档记录---------------------------------
文档记录ID:652014d52d8e41294ac7360f , 文档记录数据:  {'_id': ObjectId('652014d52d8e41294ac7360f'), 'name': 'notebook', 'weight': 500, 'size': {'h': 8.5, 'w': 11, 'uom': 'in'}, 'status': 'P'}
文档记录ID:652014d52d8e41294ac73611 , 文档记录数据:  {'_id': ObjectId('652014d52d8e41294ac73611'), 'name': 'planner', 'weight': 750, 'size': {'h': 22.85, 'w': 30, 'uom': 'cm'}, 'status': 'D'}
文档记录ID:6520160ac1fa41f534ddc67c , 文档记录数据:  {'_id': ObjectId('6520160ac1fa41f534ddc67c'), 'name': 'notebook', 'weight': 500, 'size': {'h': 8.5, 'w': 11, 'uom': 'in'}, 'status': 'P'}
文档记录ID:6520160ac1fa41f534ddc67d , 文档记录数据:  {'_id': ObjectId('6520160ac1fa41f534ddc67d'), 'name': 'paper', 'weight': 400, 'size': {'h': 8.5, 'w': 11, 'uom': 'in'}, 'status': 'D'}
文档记录ID:6520160ac1fa41f534ddc67e , 文档记录数据:  {'_id': ObjectId('6520160ac1fa41f534ddc67e'), 'name': 'planner', 'weight': 750, 'size': {'h': 22.85, 'w': 30, 'uom': 'cm'}, 'status': 'D'}
文档记录ID:6520162d80a6a1bff0ec87b8 , 文档记录数据:  {'_id': ObjectId('6520162d80a6a1bff0ec87b8'), 'name': 'notebook', 'weight': 500, 'size': {'h': 8.5, 'w': 11, 'uom': 'in'}, 'status': 'P'}
文档记录ID:6520162d80a6a1bff0ec87b9 , 文档记录数据:  {'_id': ObjectId('6520162d80a6a1bff0ec87b9'), 'name': 'paper', 'weight': 400, 'size': {'h': 8.5, 'w': 11, 'uom': 'in'}, 'status': 'D'}
文档记录ID:6520162d80a6a1bff0ec87ba , 文档记录数据:  {'_id': ObjectId('6520162d80a6a1bff0ec87ba'), 'name': 'planner', 'weight': 750, 'size': {'h': 22.85, 'w': 30, 'uom': 'cm'}, 'status': 'D'}
文档记录ID:6520167f9468f606470b7677 , 文档记录数据:  {'_id': ObjectId('6520167f9468f606470b7677'), 'name': 'notebook', 'weight': 500, 'size': {'h': 8.5, 'w': 11, 'uom': 'in'}, 'status': 'P'}
文档记录ID:6520167f9468f606470b7678 , 文档记录数据:  {'_id': ObjectId('6520167f9468f606470b7678'), 'name': 'paper', 'weight': 400, 'size': {'h': 8.5, 'w': 11, 'uom': 'in'}, 'status': 'D'}
文档记录ID:6520167f9468f606470b7679 , 文档记录数据:  {'_id': ObjectId('6520167f9468f606470b7679'), 'name': 'planner', 'weight': 750, 'size': {'h': 22.85, 'w': 30, 'uom': 'cm'}, 'status': 'D'}
文档记录ID:652016909f062dbfebfe70bf , 文档记录数据:  {'_id': ObjectId('652016909f062dbfebfe70bf'), 'name': 'notebook', 'weight': 500, 'size': {'h': 8.5, 'w': 11, 'uom': 'in'}, 'status': 'P'}
文档记录ID:652016909f062dbfebfe70c0 , 文档记录数据:  {'_id': ObjectId('652016909f062dbfebfe70c0'), 'name': 'paper', 'weight': 400, 'size': {'h': 8.5, 'w': 11, 'uom': 'in'}, 'status': 'D'}
文档记录ID:652016909f062dbfebfe70c1 , 文档记录数据:  {'_id': ObjectId('652016909f062dbfebfe70c1'), 'name': 'planner', 'weight': 750, 'size': {'h': 22.85, 'w': 30, 'uom': 'cm'}, 'status': 'D'}
文档记录ID:652017151cf24b4169cfd0ba , 文档记录数据:  {'_id': ObjectId('652017151cf24b4169cfd0ba'), 'name': 'notebook', 'weight': 500, 'size': {'h': 8.5, 'w': 11, 'uom': 'in'}, 'status': 'P'}
文档记录ID:652017151cf24b4169cfd0bb , 文档记录数据:  {'_id': ObjectId('652017151cf24b4169cfd0bb'), 'name': 'paper', 'weight': 400, 'size': {'h': 8.5, 'w': 11, 'uom': 'in'}, 'status': 'D'}
文档记录ID:652017151cf24b4169cfd0bc , 文档记录数据:  {'_id': ObjectId('652017151cf24b4169cfd0bc'), 'name': 'planner', 'weight': 750, 'size': {'h': 22.85, 'w': 30, 'uom': 'cm'}, 'status': 'D'}
文档记录ID:65201789ca4dfc62a0ae8e82 , 文档记录数据:  {'_id': ObjectId('65201789ca4dfc62a0ae8e82'), 'name': 'journal', 'weight': 250, 'size': {'h': 14, 'w': 21, 'uom': 'cm'}, 'status': 'A'}
文档记录ID:65201789ca4dfc62a0ae8e83 , 文档记录数据:  {'_id': ObjectId('65201789ca4dfc62a0ae8e83'), 'name': 'notebook', 'weight': 500, 'size': {'h': 8.5, 'w': 11, 'uom': 'in'}, 'status': 'P'}
文档记录ID:65201789ca4dfc62a0ae8e84 , 文档记录数据:  {'_id': ObjectId('65201789ca4dfc62a0ae8e84'), 'name': 'paper', 'weight': 400, 'size': {'h': 8.5, 'w': 11, 'uom': 'in'}, 'status': 'D'}
文档记录ID:65201789ca4dfc62a0ae8e85 , 文档记录数据:  {'_id': ObjectId('65201789ca4dfc62a0ae8e85'), 'name': 'planner', 'weight': 750, 'size': {'h': 22.85, 'w': 30, 'uom': 'cm'}, 'status': 'D'}
文档记录ID:65201789ca4dfc62a0ae8e86 , 文档记录数据:  {'_id': ObjectId('65201789ca4dfc62a0ae8e86'), 'name': 'postcard', 'weight': 25, 'size': {'h': 10, 'w': 15.25, 'uom': 'cm'}, 'status': 'A'}

----------------------添加过滤多条删除---------------------------------------------------------------
有多少条数据被删除: 2 条
----------------------------------查询所有文档记录---------------------------------
文档记录ID:652014d52d8e41294ac7360f , 文档记录数据:  {'_id': ObjectId('652014d52d8e41294ac7360f'), 'name': 'notebook', 'weight': 500, 'size': {'h': 8.5, 'w': 11, 'uom': 'in'}, 'status': 'P'}
文档记录ID:652014d52d8e41294ac73611 , 文档记录数据:  {'_id': ObjectId('652014d52d8e41294ac73611'), 'name': 'planner', 'weight': 750, 'size': {'h': 22.85, 'w': 30, 'uom': 'cm'}, 'status': 'D'}
文档记录ID:6520160ac1fa41f534ddc67c , 文档记录数据:  {'_id': ObjectId('6520160ac1fa41f534ddc67c'), 'name': 'notebook', 'weight': 500, 'size': {'h': 8.5, 'w': 11, 'uom': 'in'}, 'status': 'P'}
文档记录ID:6520160ac1fa41f534ddc67d , 文档记录数据:  {'_id': ObjectId('6520160ac1fa41f534ddc67d'), 'name': 'paper', 'weight': 400, 'size': {'h': 8.5, 'w': 11, 'uom': 'in'}, 'status': 'D'}
文档记录ID:6520160ac1fa41f534ddc67e , 文档记录数据:  {'_id': ObjectId('6520160ac1fa41f534ddc67e'), 'name': 'planner', 'weight': 750, 'size': {'h': 22.85, 'w': 30, 'uom': 'cm'}, 'status': 'D'}
文档记录ID:6520162d80a6a1bff0ec87b8 , 文档记录数据:  {'_id': ObjectId('6520162d80a6a1bff0ec87b8'), 'name': 'notebook', 'weight': 500, 'size': {'h': 8.5, 'w': 11, 'uom': 'in'}, 'status': 'P'}
文档记录ID:6520162d80a6a1bff0ec87b9 , 文档记录数据:  {'_id': ObjectId('6520162d80a6a1bff0ec87b9'), 'name': 'paper', 'weight': 400, 'size': {'h': 8.5, 'w': 11, 'uom': 'in'}, 'status': 'D'}
文档记录ID:6520162d80a6a1bff0ec87ba , 文档记录数据:  {'_id': ObjectId('6520162d80a6a1bff0ec87ba'), 'name': 'planner', 'weight': 750, 'size': {'h': 22.85, 'w': 30, 'uom': 'cm'}, 'status': 'D'}
文档记录ID:6520167f9468f606470b7677 , 文档记录数据:  {'_id': ObjectId('6520167f9468f606470b7677'), 'name': 'notebook', 'weight': 500, 'size': {'h': 8.5, 'w': 11, 'uom': 'in'}, 'status': 'P'}
文档记录ID:6520167f9468f606470b7678 , 文档记录数据:  {'_id': ObjectId('6520167f9468f606470b7678'), 'name': 'paper', 'weight': 400, 'size': {'h': 8.5, 'w': 11, 'uom': 'in'}, 'status': 'D'}
文档记录ID:6520167f9468f606470b7679 , 文档记录数据:  {'_id': ObjectId('6520167f9468f606470b7679'), 'name': 'planner', 'weight': 750, 'size': {'h': 22.85, 'w': 30, 'uom': 'cm'}, 'status': 'D'}
文档记录ID:652016909f062dbfebfe70bf , 文档记录数据:  {'_id': ObjectId('652016909f062dbfebfe70bf'), 'name': 'notebook', 'weight': 500, 'size': {'h': 8.5, 'w': 11, 'uom': 'in'}, 'status': 'P'}
文档记录ID:652016909f062dbfebfe70c0 , 文档记录数据:  {'_id': ObjectId('652016909f062dbfebfe70c0'), 'name': 'paper', 'weight': 400, 'size': {'h': 8.5, 'w': 11, 'uom': 'in'}, 'status': 'D'}
文档记录ID:652016909f062dbfebfe70c1 , 文档记录数据:  {'_id': ObjectId('652016909f062dbfebfe70c1'), 'name': 'planner', 'weight': 750, 'size': {'h': 22.85, 'w': 30, 'uom': 'cm'}, 'status': 'D'}
文档记录ID:652017151cf24b4169cfd0ba , 文档记录数据:  {'_id': ObjectId('652017151cf24b4169cfd0ba'), 'name': 'notebook', 'weight': 500, 'size': {'h': 8.5, 'w': 11, 'uom': 'in'}, 'status': 'P'}
文档记录ID:652017151cf24b4169cfd0bb , 文档记录数据:  {'_id': ObjectId('652017151cf24b4169cfd0bb'), 'name': 'paper', 'weight': 400, 'size': {'h': 8.5, 'w': 11, 'uom': 'in'}, 'status': 'D'}
文档记录ID:652017151cf24b4169cfd0bc , 文档记录数据:  {'_id': ObjectId('652017151cf24b4169cfd0bc'), 'name': 'planner', 'weight': 750, 'size': {'h': 22.85, 'w': 30, 'uom': 'cm'}, 'status': 'D'}
文档记录ID:65201789ca4dfc62a0ae8e83 , 文档记录数据:  {'_id': ObjectId('65201789ca4dfc62a0ae8e83'), 'name': 'notebook', 'weight': 500, 'size': {'h': 8.5, 'w': 11, 'uom': 'in'}, 'status': 'P'}
文档记录ID:65201789ca4dfc62a0ae8e84 , 文档记录数据:  {'_id': ObjectId('65201789ca4dfc62a0ae8e84'), 'name': 'paper', 'weight': 400, 'size': {'h': 8.5, 'w': 11, 'uom': 'in'}, 'status': 'D'}
文档记录ID:65201789ca4dfc62a0ae8e85 , 文档记录数据:  {'_id': ObjectId('65201789ca4dfc62a0ae8e85'), 'name': 'planner', 'weight': 750, 'size': {'h': 22.85, 'w': 30, 'uom': 'cm'}, 'status': 'D'}


删除发生在那张表: inventory

删除单条记录
删除的影响数:  1

----------------------------删除所有的记录------------------------------
删除文档记录影响的条数: 19

Process finished with exit code 0
 


详细删除查看官方文档


七:CRUD数据库|数据存储概况



 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值