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数据库使用实战

[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年初的主要内容,如果未能解决你的问题,请参考以下文章

Pandas开发实战博文集锦(初步集成)

干货集锦深度学习框架专题

苹果电脑基本设置+Linux 命令+Android 实战集锦

MongoDB入门实战教程

庞巴迪赛车最多开多少迈

MongoDB经典面试题集锦