search
HomeDatabaseMysql Tutorial MongoDB实战(2)工具集与特殊魔术方法

一、MongoDB启动方式MongoDB除了支持命令行的启动方式还支持配置文件启动通过读取启动配置文件的方式来启动数据库比方说配置文件如下则可以使用如下命令./mongod

一、MongoDB启动方式

MongoDB除了支持命令行的启动方式还支持配置文件启动通过读取启动配置文件的方式来启动数据库比方说配置文件如下

则可以使用如下命令

./mongod -f /etc/mongodb.conf

MongoDB参数说明

dbpath:
数据文件存放路径每个数据库会在其中创建一个子目录用于防止同一个实例多次运
行的mongod.lock也保存在此目录中。
logpath
错误日志文件
logappend
错误日志采用追加模式默认是覆写模式
bind_ip
对外服务的绑定ip一般设置为空及绑定在本机所有可用ip上如有需要可以单独
指定
port
对外服务端口。Web管理端口在这个port的基础上+1000
fork
以后台Daemon形式运行服务
journal
开启日志功能通过保存操作日志来降低单机故障的恢复时间在1.8版本后正式加入
取代在1.7.5版本中的dur参数。
syncdelay
系统同步刷新磁盘的时间单位为秒默认是60秒。
directoryperdb
每个db存放在单独的目录中建议设置该参数。与MySQL的独立表空间类似
maxConns
最大连接数
repairpath
执行repair时的临时目录。在如果没有开启journal异常down机后重启必须执行repair
操作。

停止数据库这里有一点需要注意

使用kill-2或者pkill都可以但是不要使用kill-9来杀死MongoDB进程这样会导致MongoDB的数据损坏。

二、常用工具集

MongoDB在bin目录下提供了一系列有用的工具这些工具提供了MongoDB在运维管理上
的方便。
bsondump:将bson格式的文件转储为json格式的数据
mongo:客户端命令行工具其实也是一个js解释器支持js语法
mongod:数据库服务端每个实例启动一个进程可以fork为后台运行
mongodump/mongorestore:数据库备份和恢复工具
mongoexport/mongoimport:数据导出和导入工具
mongofiles:GridFS管理工具可实现二制文件的存取
mongos:分片路由如果使用了sharding功能则应用程序连接的是mongos而不是
mongod
mongosniff:这一工具的作用类似于tcpdump不同的是他只监控MongoDB相关的包请
求并且是以指定的可读性的形式输出
mongostat:实时性能监控工具

三、一些很重要的魔术方法

1、$all匹配所有
这个操作符跟SQL语法的in类似但不同的是,in只需满足()内的某一个值即可,而$all必
须满足[]内的所有值例如:
db.users.find({age:{$all:[6,8]}});
可以查询出{name:'David',age:26,age:[6,8,9]}
但查询不出{name:'David',age:26,age:[6,7,9]}

2、$mod取模运算
查询age取模10等于0的数据
db.student.find({age:{$mod:[10,1]}})
举例如下:
C1表的数据如下:

> db.c1.find() { "_id" : ObjectId("4fb4af85afa87dc1bed94330"), "age" : 7, "length_1" : 30 } { "_id" : ObjectId("4fb4af89afa87dc1bed94331"), "age" : 8, "length_1" : 30 } { "_id" : ObjectId("4fb4af8cafa87dc1bed94332"), "age" : 6, "length_1" : 30 }

查询age取模6等于1的数据

> db.c1.find({age: {$mod : [ 6 , 1 ] } }) { "_id" : ObjectId("4fb4af85afa87dc1bed94330"), "age" : 7, "length_1" : 30 }

可以看出只显示出了age取模6等于1的数据其它不符合规则的数据并没有显示出来

3、$size数组元素个数
对于{name:'David',age:26,favorite_number:[6,7,9]}记录
匹配db.users.find({favorite_number:{$size:3}});
不匹配db.users.find({favorite_number:{$size:2}});

4、$slice取数组中指定段的记录

192847132.png

5、$看实例吧

结果这样

四、存储过程

MongoDB存储过程是存储在db.system.js表中的我们想象一个简单的sql自定义函数如下

存储过程的定义查看和执行

194708616.png

本文出自 “phper-每天一点点~” 博客,请务必保留此出处

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
MySQL String Types: Storage, Performance, and Best PracticesMySQL String Types: Storage, Performance, and Best PracticesMay 10, 2025 am 12:02 AM

MySQLstringtypesimpactstorageandperformanceasfollows:1)CHARisfixed-length,alwaysusingthesamestoragespace,whichcanbefasterbutlessspace-efficient.2)VARCHARisvariable-length,morespace-efficientbutpotentiallyslower.3)TEXTisforlargetext,storedoutsiderows,

Understanding MySQL String Types: VARCHAR, TEXT, CHAR, and MoreUnderstanding MySQL String Types: VARCHAR, TEXT, CHAR, and MoreMay 10, 2025 am 12:02 AM

MySQLstringtypesincludeVARCHAR,TEXT,CHAR,ENUM,andSET.1)VARCHARisversatileforvariable-lengthstringsuptoaspecifiedlimit.2)TEXTisidealforlargetextstoragewithoutadefinedlength.3)CHARisfixed-length,suitableforconsistentdatalikecodes.4)ENUMenforcesdatainte

What are the String Data Types in MySQL?What are the String Data Types in MySQL?May 10, 2025 am 12:01 AM

MySQLoffersvariousstringdatatypes:1)CHARforfixed-lengthstrings,2)VARCHARforvariable-lengthtext,3)BINARYandVARBINARYforbinarydata,4)BLOBandTEXTforlargedata,and5)ENUMandSETforcontrolledinput.Eachtypehasspecificusesandperformancecharacteristics,sochoose

How to Grant Permissions to New MySQL UsersHow to Grant Permissions to New MySQL UsersMay 09, 2025 am 12:16 AM

TograntpermissionstonewMySQLusers,followthesesteps:1)AccessMySQLasauserwithsufficientprivileges,2)CreateanewuserwiththeCREATEUSERcommand,3)UsetheGRANTcommandtospecifypermissionslikeSELECT,INSERT,UPDATE,orALLPRIVILEGESonspecificdatabasesortables,and4)

How to Add Users in MySQL: A Step-by-Step GuideHow to Add Users in MySQL: A Step-by-Step GuideMay 09, 2025 am 12:14 AM

ToaddusersinMySQLeffectivelyandsecurely,followthesesteps:1)UsetheCREATEUSERstatementtoaddanewuser,specifyingthehostandastrongpassword.2)GrantnecessaryprivilegesusingtheGRANTstatement,adheringtotheprincipleofleastprivilege.3)Implementsecuritymeasuresl

MySQL: Adding a new user with complex permissionsMySQL: Adding a new user with complex permissionsMay 09, 2025 am 12:09 AM

ToaddanewuserwithcomplexpermissionsinMySQL,followthesesteps:1)CreatetheuserwithCREATEUSER'newuser'@'localhost'IDENTIFIEDBY'password';.2)Grantreadaccesstoalltablesin'mydatabase'withGRANTSELECTONmydatabase.TO'newuser'@'localhost';.3)Grantwriteaccessto'

MySQL: String Data Types and CollationsMySQL: String Data Types and CollationsMay 09, 2025 am 12:08 AM

The string data types in MySQL include CHAR, VARCHAR, BINARY, VARBINARY, BLOB, and TEXT. The collations determine the comparison and sorting of strings. 1.CHAR is suitable for fixed-length strings, VARCHAR is suitable for variable-length strings. 2.BINARY and VARBINARY are used for binary data, and BLOB and TEXT are used for large object data. 3. Sorting rules such as utf8mb4_unicode_ci ignores upper and lower case and is suitable for user names; utf8mb4_bin is case sensitive and is suitable for fields that require precise comparison.

MySQL: What length should I use for VARCHARs?MySQL: What length should I use for VARCHARs?May 09, 2025 am 12:06 AM

The best MySQLVARCHAR column length selection should be based on data analysis, consider future growth, evaluate performance impacts, and character set requirements. 1) Analyze the data to determine typical lengths; 2) Reserve future expansion space; 3) Pay attention to the impact of large lengths on performance; 4) Consider the impact of character sets on storage. Through these steps, the efficiency and scalability of the database can be optimized.

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SecLists

SecLists

SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.

SublimeText3 Linux new version

SublimeText3 Linux new version

SublimeText3 Linux latest version

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Integrate Eclipse with SAP NetWeaver application server.