Python3中类的高级语法及实战
Python3(基础|高级)语法实战(|多线程|多进程|线程池|进程池技术)|多线程安全问题解决方案
Python3数据科学包系列(一):数据分析实战
Python3数据科学包系列(二):数据分析实战
Python3数据科学包系列(三):数据分析实战
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': '老杨', 'text': '我的乖乖!', 'tags': ['爬虫实战', 'python3', 'C入门到放弃', 'java入门到放弃', '网络黑客'], 'date': datetime.datetime.utcnow()}, { 'author': 'Mike', 'text': 'My first book!', 'tags': ['爬虫', 'python', 'C', 'java', '网络'], 'date': datetime.datetime.utcnow() }, { 'author': 'John', 'text': 'I love you !', 'tags': ['爬虫入门', 'python胶水语言', 'C高级语言', 'java垫底语言', '网络修理工'], 'date': datetime.datetime.utcnow() }, { 'author': '老许', 'text': '房地产大亨!', 'tags': ['入门房地产', '节制扩张', '适中拓展', '快速扩张', '无节制扩张', '一丘之貉', '落网入狱'], 'date': datetime.datetime.utcnow() }] # 访问booksDB数据库 booksDB = myClient.booksDB print(booksDB) # 创建集合 mydb = myClient['booksDB'] # 获得booksDB数据集合 dblist = mydb.get_collection('booksDB') print(dblist) # 插入数据时,才会在服务器响应目录生成对应的booksDB集合 resultData = dblist.insert_many(books) # 根据条件检索 print(dblist.find_one({'author': '老许'})) # 循环遍历 for book in dblist.find(): print("book: ", book)
运行效果:
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('651e59c092f7b5b0f2a78ab3'), 'author': '老许', 'text': '房地产大亨!', 'tags': ['入门房地产', '节制扩张', '适中拓展', '快速扩张', '无节制扩张', '一丘之貉', '落网入狱'], 'date': datetime.datetime(2023, 10, 5, 6, 37, 52, 160000)}
book: {'_id': ObjectId('651e525cdd9462dc3d985358'), 'author': 'Mike', 'text': 'My first book!', 'tags': ['爬虫', 'python', 'C', 'java', '网络'], 'date': datetime.datetime(2023, 10, 5, 6, 6, 20, 137000)}
book: {'_id': ObjectId('651e59c092f7b5b0f2a78ab0'), 'author': '老杨', 'text': '我的乖乖!', 'tags': ['爬虫实战', 'python3', 'C入门到放弃', 'java入门到放弃', '网络黑客'], 'date': datetime.datetime(2023, 10, 5, 6, 37, 52, 160000)}
book: {'_id': ObjectId('651e59c092f7b5b0f2a78ab1'), 'author': 'Mike', 'text': 'My first book!', 'tags': ['爬虫', 'python', 'C', 'java', '网络'], 'date': datetime.datetime(2023, 10, 5, 6, 37, 52, 160000)}
book: {'_id': ObjectId('651e59c092f7b5b0f2a78ab2'), 'author': 'John', 'text': 'I love you !', 'tags': ['爬虫入门', 'python胶水语言', 'C高级语言', 'java垫底语言', '网络修理工'], 'date': datetime.datetime(2023, 10, 5, 6, 37, 52, 160000)}
book: {'_id': ObjectId('651e59c092f7b5b0f2a78ab3'), 'author': '老许', 'text': '房地产大亨!', 'tags': ['入门房地产', '节制扩张', '适中拓展', '快速扩张', '无节制扩张', '一丘之貉', '落网入狱'], 'date': datetime.datetime(2023, 10, 5, 6, 37, 52, 160000)}
book: {'_id': ObjectId('651e59d3aa91c719f3460dca'), 'author': '老杨', 'text': '我的乖乖!', 'tags': ['爬虫实战', 'python3', 'C入门到放弃', 'java入门到放弃', '网络黑客'], 'date': datetime.datetime(2023, 10, 5, 6, 38, 11, 522000)}
book: {'_id': ObjectId('651e59d3aa91c719f3460dcb'), 'author': 'Mike', 'text': 'My first book!', 'tags': ['爬虫', 'python', 'C', 'java', '网络'], 'date': datetime.datetime(2023, 10, 5, 6, 38, 11, 522000)}
book: {'_id': ObjectId('651e59d3aa91c719f3460dcc'), 'author': 'John', 'text': 'I love you !', 'tags': ['爬虫入门', 'python胶水语言', 'C高级语言', 'java垫底语言', '网络修理工'], 'date': datetime.datetime(2023, 10, 5, 6, 38, 11, 522000)}
book: {'_id': ObjectId('651e59d3aa91c719f3460dcd'), 'author': '老许', 'text': '房地产大亨!', 'tags': ['入门房地产', '节制扩张', '适中拓展', '快速扩张', '无节制扩张', '一丘之貉', '落网入狱'], 'date': datetime.datetime(2023, 10, 5, 6, 38, 11, 522000)}
book: {'_id': ObjectId('651e59dede3830cbceb9ce48'), 'author': '老杨', 'text': '我的乖乖!', 'tags': ['爬虫实战', 'python3', 'C入门到放弃', 'java入门到放弃', '网络黑客'], 'date': datetime.datetime(2023, 10, 5, 6, 38, 22, 935000)}
book: {'_id': ObjectId('651e59dede3830cbceb9ce49'), 'author': 'Mike', 'text': 'My first book!', 'tags': ['爬虫', 'python', 'C', 'java', '网络'], 'date': datetime.datetime(2023, 10, 5, 6, 38, 22, 935000)}
book: {'_id': ObjectId('651e59dede3830cbceb9ce4a'), 'author': 'John', 'text': 'I love you !', 'tags': ['爬虫入门', 'python胶水语言', 'C高级语言', 'java垫底语言', '网络修理工'], 'date': datetime.datetime(2023, 10, 5, 6, 38, 22, 935000)}
book: {'_id': ObjectId('651e59dede3830cbceb9ce4b'), 'author': '老许', 'text': '房地产大亨!', 'tags': ['入门房地产', '节制扩张', '适中拓展', '快速扩张', '无节制扩张', '一丘之貉', '落网入狱'], 'date': datetime.datetime(2023, 10, 5, 6, 38, 22, 935000)}
book: {'_id': ObjectId('651e5a0d75363b962608926c'), 'author': '老杨', 'text': '我的乖乖!', 'tags': ['爬虫实战', 'python3', 'C入门到放弃', 'java入门到放弃', '网络黑客'], 'date': datetime.datetime(2023, 10, 5, 6, 39, 9, 924000)}
book: {'_id': ObjectId('651e5a0d75363b962608926d'), 'author': 'Mike', 'text': 'My first book!', 'tags': ['爬虫', 'python', 'C', 'java', '网络'], 'date': datetime.datetime(2023, 10, 5, 6, 39, 9, 924000)}
book: {'_id': ObjectId('651e5a0d75363b962608926e'), 'author': 'John', 'text': 'I love you !', 'tags': ['爬虫入门', 'python胶水语言', 'C高级语言', 'java垫底语言', '网络修理工'], 'date': datetime.datetime(2023, 10, 5, 6, 39, 9, 924000)}
book: {'_id': ObjectId('651e5a0d75363b962608926f'), 'author': '老许', 'text': '房地产大亨!', 'tags': ['入门房地产', '节制扩张', '适中拓展', '快速扩张', '无节制扩张', '一丘之貉', '落网入狱'], 'date': datetime.datetime(2023, 10, 5, 6, 39, 9, 924000)}
book: {'_id': ObjectId('651e5a2ad2bb7283167996c2'), 'author': '老杨', 'text': '我的乖乖!', 'tags': ['爬虫实战', 'python3', 'C入门到放弃', 'java入门到放弃', '网络黑客'], 'date': datetime.datetime(2023, 10, 5, 6, 39, 38, 328000)}
book: {'_id': ObjectId('651e5a2ad2bb7283167996c3'), 'author': 'Mike', 'text': 'My first book!', 'tags': ['爬虫', 'python', 'C', 'java', '网络'], 'date': datetime.datetime(2023, 10, 5, 6, 39, 38, 328000)}
book: {'_id': ObjectId('651e5a2ad2bb7283167996c4'), 'author': 'John', 'text': 'I love you !', 'tags': ['爬虫入门', 'python胶水语言', 'C高级语言', 'java垫底语言', '网络修理工'], 'date': datetime.datetime(2023, 10, 5, 6, 39, 38, 328000)}
book: {'_id': ObjectId('651e5a2ad2bb7283167996c5'), 'author': '老许', 'text': '房地产大亨!', 'tags': ['入门房地产', '节制扩张', '适中拓展', '快速扩张', '无节制扩张', '一丘之貉', '落网入狱'], 'date': datetime.datetime(2023, 10, 5, 6, 39, 38, 328000)}
book: {'_id': ObjectId('651e5a54efa01a17dd94c4cd'), 'author': '老杨', 'text': '我的乖乖!', 'tags': ['爬虫实战', 'python3', 'C入门到放弃', 'java入门到放弃', '网络黑客'], 'date': datetime.datetime(2023, 10, 5, 6, 40, 20, 48000)}
book: {'_id': ObjectId('651e5a54efa01a17dd94c4ce'), 'author': 'Mike', 'text': 'My first book!', 'tags': ['爬虫', 'python', 'C', 'java', '网络'], 'date': datetime.datetime(2023, 10, 5, 6, 40, 20, 48000)}
book: {'_id': ObjectId('651e5a54efa01a17dd94c4cf'), 'author': 'John', 'text': 'I love you !', 'tags': ['爬虫入门', 'python胶水语言', 'C高级语言', 'java垫底语言', '网络修理工'], 'date': datetime.datetime(2023, 10, 5, 6, 40, 20, 48000)}
book: {'_id': ObjectId('651e5a54efa01a17dd94c4d0'), 'author': '老许', 'text': '房地产大亨!', 'tags': ['入门房地产', '节制扩张', '适中拓展', '快速扩张', '无节制扩张', '一丘之貉', '落网入狱'], 'date': datetime.datetime(2023, 10, 5, 6, 40, 20, 48000)}
book: {'_id': ObjectId('651e5a6f1bd3c8469e495fb1'), 'author': '老杨', 'text': '我的乖乖!', 'tags': ['爬虫实战', 'python3', 'C入门到放弃', 'java入门到放弃', '网络黑客'], 'date': datetime.datetime(2023, 10, 5, 6, 40, 47, 973000)}
book: {'_id': ObjectId('651e5a6f1bd3c8469e495fb2'), 'author': 'Mike', 'text': 'My first book!', 'tags': ['爬虫', 'python', 'C', 'java', '网络'], 'date': datetime.datetime(2023, 10, 5, 6, 40, 47, 973000)}
book: {'_id': ObjectId('651e5a6f1bd3c8469e495fb3'), 'author': 'John', 'text': 'I love you !', 'tags': ['爬虫入门', 'python胶水语言', 'C高级语言', 'java垫底语言', '网络修理工'], 'date': datetime.datetime(2023, 10, 5, 6, 40, 47, 973000)}
book: {'_id': ObjectId('651e5a6f1bd3c8469e495fb4'), 'author': '老许', 'text': '房地产大亨!', 'tags': ['入门房地产', '节制扩张', '适中拓展', '快速扩张', '无节制扩张', '一丘之貉', '落网入狱'], 'date': datetime.datetime(2023, 10, 5, 6, 40, 47, 973000)}
book: {'_id': ObjectId('651e5a83a71ca93c05006a0d'), 'author': '老杨', 'text': '我的乖乖!', 'tags': ['爬虫实战', 'python3', 'C入门到放弃', 'java入门到放弃', '网络黑客'], 'date': datetime.datetime(2023, 10, 5, 6, 41, 7, 691000)}
book: {'_id': ObjectId('651e5a83a71ca93c05006a0e'), 'author': 'Mike', 'text': 'My first book!', 'tags': ['爬虫', 'python', 'C', 'java', '网络'], 'date': datetime.datetime(2023, 10, 5, 6, 41, 7, 691000)}
book: {'_id': ObjectId('651e5a83a71ca93c05006a0f'), 'author': 'John', 'text': 'I love you !', 'tags': ['爬虫入门', 'python胶水语言', 'C高级语言', 'java垫底语言', '网络修理工'], 'date': datetime.datetime(2023, 10, 5, 6, 41, 7, 691000)}
book: {'_id': ObjectId('651e5a83a71ca93c05006a10'), 'author': '老许', 'text': '房地产大亨!', 'tags': ['入门房地产', '节制扩张', '适中拓展', '快速扩张', '无节制扩张', '一丘之貉', '落网入狱'], 'date': datetime.datetime(2023, 10, 5, 6, 41, 7, 691000)}
book: {'_id': ObjectId('651e5af3b81b4aebc4879a12'), 'author': '老杨', 'text': '我的乖乖!', 'tags': ['爬虫实战', 'python3', 'C入门到放弃', 'java入门到放弃', '网络黑客'], 'date': datetime.datetime(2023, 10, 5, 6, 42, 59, 955000)}
book: {'_id': ObjectId('651e5af3b81b4aebc4879a13'), 'author': 'Mike', 'text': 'My first book!', 'tags': ['爬虫', 'python', 'C', 'java', '网络'], 'date': datetime.datetime(2023, 10, 5, 6, 42, 59, 955000)}
book: {'_id': ObjectId('651e5af3b81b4aebc4879a14'), 'author': 'John', 'text': 'I love you !', 'tags': ['爬虫入门', 'python胶水语言', 'C高级语言', 'java垫底语言', '网络修理工'], 'date': datetime.datetime(2023, 10, 5, 6, 42, 59, 955000)}
book: {'_id': ObjectId('651e5af3b81b4aebc4879a15'), 'author': '老许', 'text': '房地产大亨!', 'tags': ['入门房地产', '节制扩张', '适中拓展', '快速扩张', '无节制扩张', '一丘之貉', '落网入狱'], 'date': datetime.datetime(2023, 10, 5, 6, 42, 59, 955000)}Process finished with exit code 0
后续补充完整.........忙着去耍帅..............