MongoDB实战集锦【2022年初】

90 篇文章 10 订阅
39 篇文章 1 订阅
本文详细介绍了MongoDB在Windows和Linux环境下的启动与配置,以及数据库的关闭方法。重点讲解了如何通过命令行和数据库命令关闭MongoDB。此外,还分享了MongoDB的实战技巧,包括数据的唯一性查询、删除记录等操作。同时,文章涵盖了Python中MongoDB的使用经验,如数据导入导出、聚合查询和文档管理应用。
摘要由CSDN通过智能技术生成

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

肖永威

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值