MongoDB实战集锦2022年初
Posted 肖永威
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MongoDB实战集锦2022年初相关的知识,希望对你有一定的参考价值。
1. 基础篇
1.1. 启动mongodb:
1.1.1. Windows环境
D:\\mongodb 的目录
2020/11/21 09:40 <DIR> .
2020/11/21 09:40 <DIR> ..
2020/11/21 09:38 <DIR> bin
2020/11/21 09:35 <DIR> conf
2022/04/13 18:19 <DIR> data
2020/11/16 15:25 30,608 LICENSE-Community.txt
2022/04/13 11:42 <DIR> log
2020/11/16 15:25 16,726 MPL-2
2020/11/16 15:25 1,977 README
2020/11/16 15:25 75,685 THIRD-PARTY-NOTICES
在桌面创建个快捷文件xmongod.bat,执行如下命令:
mongod -config d:\\mongodb\\conf\\mongod.cfg
配置文件mongod.cfg:
dbpath=D:\\mongodb\\data
logpath = D:\\mongodb\\log\\mongodb.log
1.1.2. Linux环境:
[root@DeepLearning /]# mongod --config /usr/local/mongodb/etc/mongodb.conf
配置文件:
dbpath=/usr/local/mongodb/data
logpath=/usr/local/mongodb/log/mongodb.log
bind_ip = 0.0.0.0
port=27017
fork=true
journal=false
注:查看数据存储(由于存储分配不合理,使用软连接):
[root@DeepLearning /]# ls -il /usr/local/mongodb/data
*** /usr/local/mongodb/data -> /home/python/mongodb/data
1.2. 关闭数据库
1.2.1. 运行中关闭
如果在操作命令行中执行的话,直接可以用命令行关闭,“Crtl+C” 直接可以阻断SHELL命令的执行。如果以前台方式启动 MongoDB 服务,使用Crtl+C服务会关闭,这种关闭方式会等待当前进行中的的操作完成,所以依然是干净的关闭方式。
1.2.2. 使用数据库命令关闭
1、登录数据库
[mongo@redhatB data]$ mongo
2、关闭 MongoDB 服务
> use admin;
switched to db admin
> db.shutdownServer();
使用 Mongod 命令关闭
[mongo@redhatB data]$ mongod --shutdown --dbpath /database/mongodb/data/
1.3. 如何停止正在执行的命令
查看MongoDB正在执行的命令并提前停止命令实,可以通过db.currentOp()获取当前正在执行的操作。其中,返回的文档中有"opid" 是当前正在执行命令的标识。
如果发现一个操作太长,把数据库卡死的话,可以用这个命令杀死他
db.killOp(46072)
“info” : “attempting to kill op”, “ok” : 1
这个数字就是"opid" 。
2. 实战集锦
2.1. MongoDB数据库使用实战
2.1.1. 最新整理
2.1.1.1. 取唯一(distinct)
db.getCollection(‘customerfeature’).distinct(‘carduser_id’)
按条件查询,取唯一值。
db.getCollection(‘customerfeature’).distinct(‘carduser_id’,‘abnormal’:0)
2.1.1.2. 删除记录(remove)
db.getCollection(‘customerfeature’).remove(‘yearmonth’:‘201802’)
2.1.2. 历史集锦
[1]. MongoDB增加及修改字段,表关联修改字段方法一则. 2022.04.30
需求是为集合(表)'customerfeature1’增加’abnormal’字段,根据条件分别设置1或0。
[2]. Mongo DB删除重复数据文档实践. 2022.01.06
Mongo DB删除重复记录实践。
[3]. MongoDB聚合结果输出到新的集合方法与案例实践. 2021.12.08
使用out (aggregation)获取聚合管道返回的文档并将其写入指定集合。
[4]. MongoDB聚合使用表达式运算符(函数)分组按条件计数统计案例一则. 2021-11-20
在MongoDB聚合统计过程中,经常使用表达式运算符用于构造用于聚合管道阶段的表达式。运算符表达式类似于接受参数的函数。例如使用’$concat’、‘$substr’、‘$sum’、‘$cond’、‘$eq’、'$lt’等运算符。
[5]. MongoDB多表关联分组查询指定行数数据实践遇坑记及解析. 2021-11-30
MongoDB多表关联分组查询指定行数数据实践遇坑记及解析,基于聚合中的$lookup、$lookup嵌套pipeline、$group与$push、$slice提取子数组、$unwind组合文档等实现,并分析大数据集处理及解决办法。
[6]. MongoDB高级查询多级分组聚合及时间计算应用实践案例. 2021.10.30
本文是Mongo DB复杂聚合查询实践案例,其中使用较多时间变换及时间计算,粗略整理出来分享学习。
[7]. MongoDB高级查询聚合应用实践案例. 2021.04.07
使用mongodb进行分组聚合查询,复杂语句笔记,包括:联合字段分组、最大值、条件、类型转换、计数、求和、表关联等。
[8]. Python中MongoDB编程与管理实践经验四则(用户管理、索引、查询、导出数据). 2019.06.06
Python中MongoDB编程与管理实践经验四则(用户管理、索引、查询、导出数据)
[9]. 如何将mongo查询结果导出到文件中以及导入到另一个Mongo库中. 2019.03.09
本文发挥Mongo在javascript脚本上的优势,编写js代码把查询数据结果导出到文本文件中(JSON格式数据),并使用mongoimport 命令直接导入结果集,同时,也解决了过程中数据的坑。
[10]. Python开发中使用Mongo DB入门实践. 2018-07-14
[11]. 初学MongoDB实践笔记——安装、创建数据库、保存及查询数据. 2015-01-02
2.2. 应用篇
[1]. Python+Streamlit aggrid+MongoDB GridFS构建低代码文档管理应用(文档查询下载实用篇). 2022.4.23
在Python环境下,使用Streamlit aggrid增强Streamlit表格可视化处理能力,实现表格化、易操作的文档查询下载功能。
[2]. Python+Streamlit+MongoDB GridFS构建低代码文档管理应用(Demo篇). 2022.04.17
基于Python和文档型数据库MongoDB,使用低代码Web框架Streamlit,直接在MongoDB GridFS上实现文档管理(Demo篇)。
[3]. Python语言环境中MongoDB聚合经验一则——分组取最近一次记录集. 2021.11.13
按客户号“carduser_id”分组查询,并按时间“occurtime”排序取最大时间(排序后的第一行记录),也就是取每个客户号下最近一次记录集,而且,此记录集升格为根记录。使用Mongo的$replacRoot: newRoot:和pymongo的aggregate()。
[4]. 通过Pandas批量快速读取MongoDB数据经验一则. 2020.10.12
对于处理读取大批量MongoDB数据的需求,一般采用通过游标分批读取数据,逐批按需求处理数据(数据治理)方案,这样过程思维清晰,缺点是大数据量时速度较慢,而且需要调优游标批量处理量(batch_size),例如我处理读取100万条数据时,耗费我大概5天时间,而直接采用Pandas工具一
[5]. Python开发中使用Mongo DB入门实践. 2018.07.14
3. 其他参考资料
gridfs – Tools for working with GridFS
collection – Collection level operations
以上是关于MongoDB实战集锦2022年初的主要内容,如果未能解决你的问题,请参考以下文章