MongoDB的一些基本操作
发表于:2025-01-26 作者:千家信息网编辑
千家信息网最后更新 2025年01月26日,这篇文章主要讲解了MongoDB的一些基本操作,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。MongoDB的介绍:MongoDB 是由C++语言编写的开源数据库系统。Mo
千家信息网最后更新 2025年01月26日MongoDB的一些基本操作
这篇文章主要讲解了MongoDB的一些基本操作,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。
MongoDB的介绍:
- MongoDB 是由C++语言编写的开源数据库系统。
- MongoDB 将数据存储为一个文档。MongoDB是一个基于分布式文件存储的数据库。
- MongoDB的提供了一个面向文档存储,操作起来比较简单和容易
- 可以在MongoDB记录中设置任何属性的索引
- Mongo支持丰富的查询表达式。查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及
数组。 - MongoDB支持多个存储引擎:wireTiger、 MMaPv1等等
MongoDB服务端的启动:
使用mongod命令来启动服务端
mongodb常用启动参数
--bind_ip:绑定服务IP,若绑定127.0.0.1,则只能本机访问,不指定默认本地所有IP
--port:指定服务端口号,默认端口27017
--logpath:指定MongoDB日志文件存放路径
--dbpath:指定数据库路径【需要指定才能启动成功】
--serviceName:指定服务名称 【主要用于安装服务时指定名称】
--serviceDisplayName:指定服务名称,有多个mongodb服务时执行。【主要用于安装服务时指定名称】
想获得更多参数信息,可以输入:
mongod --help或mongod -h
将MongoDB服务器作为Windows服务运行:
上面的启动方式需要挂起一个窗口。
如果不想一直挂起一个窗口,也可以将这些启动参数添加到服务中,将mongod作为一个服务启动,这样就不需要那么麻烦了。
输入命令例子如下:
mongod --dbpath "D:\data\db" --logpath "D:\data\log\mongodb.log" --serviceName "mongodb" --serviceDisplayName "mongodb" --install
- 安装服务必须参数介绍:
- --install:指示安装成服务
- --serviceName:指定服务名称
- --serviceDisplayName:指定服务名称,有多个mongodb服务时执行
- 其他设置都是可选的,按自己需求来确认是否填写。
这样就只需要在使用的时候启动mongod服务即可。
MongoDB客户端连接:
使用mongo命令来连接服务端。
mongo [options] [db address] [file names (ending in .js)]
本地服务端可以使用:mongo 或者mongo localhost
远程的可以使用:mongo IP地址
想获取更多参数设置信息,可以输入一下命令:
mongo --help或mongo -h
SQL与MongoDB相关概念解释:
这个相关概念解释是为了让一些有了SQL学习经验(没有的应该也能了解)的人更快了解MongoDB的结构
什么是BSON:
- BSON()是一种类json的一种二进制形式的存储格式,简称Binary JSON,它和JSON一样,支持内嵌的文档对象和数组对象,但是BSON有JSON没有的一些数据类型,如Date和BinData类型。
- BSON可以做为网络数据交换的一种存储形式,这个有点类似于Google的Protocol Buffer,但是BSON是一种schema-less的存储形式,它的优点是灵活性高,但它的缺点是空间利用率不是很理想,
- BSON有三个特点:轻量性、可遍历性、高效性
- BSON的例子:{"name":"alex","age":18}
- BSON支持的数据类型:
数据库操作:
- 显示所有数据库【注意,数据为空的数据库默认不显示出来】:
show dbs
- 显示当前数据库对象或者集合:
db
- 切换数据库,如果数据库不存在就创建数据库再切换到指定数据库:
use 数据库名
- 创建数据库: use 数据库名
- 数据库名称可以是任何字符,但是不能包含空字符串,点号(.),或者" "。
- 默认的数据库为test,如果你没有创建新的数据库,集合将存放在test数据库中
- 删除数据库:
- db.dropDatabase():删除当前数据库,建议先用db命令确认一下当前数据库
集合操作:
- 在mongodb中的集合是无模式的,mongodb中并没有严格的约束插入的数据,集合中存储的文档的结构可以是不同的。
- 下面的两个文档可以同时存入到一个集合中:{"name":"alex"} {"age":18,"sex":"man"}
- 集合的命名:
- 集合名称必须以字母或下划线开头。
- 集合名可以保护数字
- 集合名称不能使美元符"$","$"是系统保留字符。
- 集合的名字 最大不能超过128个字符 。
- 另外,"."号的使用在集合当中是允许的,它们被成为子集合(Subcollection);
- 创建集合:
db.createCollection(name, {size: ..., capped: ..., max: ...})
- name是集合名
- size,capped,max是可选项:size代表集合大小,capped代表是否限制集合大小(size来设置),max代表集合的最大文档数量
- 可选项还有很多,想了解更多可以参考官方文档,比如还有storageEngine,collation。。。
- 查看当前数据库所有集合:
show collections
- 删除集合:
db.集合名.drop()
- 修改集合名:
db.集合名.renameCollection()
- 获取集合帮助信息:
db.集合名.help()
文档操作:
插入文档:
- db.集合名.insert(document):document是一个BSON格式的。
db.users.insertOne({ name: "sue",age: 19,status: "P"})
- db.集合名.insertOne(document):document是一个BSON格式的。
db.teacher.insert({name: "sue"})db.teacher.insert([{"name":"Lili"},{"name":"Alex"}])
- db.集合名.insertMany([document,document,document……]):document是一个BSON格式的。
db.users.insertMany( [{ name: "bob", age: 42, status: "A", },{ name: "ahn", age: 22, status: "A", },{ name: "xi", age: 34, status: "D", }])
- db.集合名.insert(document):document是一个BSON格式的。
查看数据:
db.集合名.find(
, )
db.集合名.findone(
, ):只返回一个文档 - query filter可以有如下:
- {}:代表返回所有文档,db.集合名.find({}),等价于db.集合名.find()
db.teacher.find()
- {key1:value1,key2:value2…}:返回key1==value1 and key2==value2的文档;
db.teacher.find({name:"alex"})db.teacher.find({name:"jack",course:"linux"})
- {
: { : }, ... }: - operator可以有 $lt小于, $gt大于,$gte大于等于, $lte小于等于, $ne不等于
db.class.find({"member":{$gt:5}})db.class.find({"member":{$gt:5},grade:{$gt:3}})
- operator可以有 $lt小于, $gt大于,$gte大于等于, $lte小于等于, $ne不等于
- {}:代表返回所有文档,db.集合名.find({}),等价于db.集合名.find()
query filter
多个条件的and
和or
:- 默认情况多个条件下是
and
的,多个条件用逗号分开 - 如果想要使用or:{$or[{
: },{ : },{ : }……]} and
和or
的联合使用:({and条件,$or:[or条件]})
db.teacher.find({course:"linux",$or:[{name:"Lili"},{name:"Alex"}]})
- 默认情况多个条件下是
query filter
的条件还可以是类型检测:使用$type
来进行类型检测,type检
测的类型数字,根据上面BSON
类型表中的数值。- 筛选出字段数据类型是否是double型的:
$type:1
- 筛选出字段数据类型是否是string型的:
$type:2
- 筛选出字段数据类型是否是boolean型的:
$type:8
- 筛选出字段数据类型是否是Null型的:
$type:10
- …..其他
- 筛选出字段数据类型是否是double型的:
- 如果想要以格式化的方式来查看文档
db.集合名.find().pretty()
- 普通格式:
- pretty格式:
- 更新文档:
- 更新文档可以使用下面几个:
db.集合名.updateOne(
, ,{option}):更新单条文档 db.集合名.updateMany(
, ,{option}):更新多条文档 db.集合名.update(
, ,{option}):更新文档,可选单条文档或多条文档
query是BSON格式的,作为查找文档的条件
,query的条件参考上面查找文档中的query filterupdate是BSON格式的,指明了如何修改文档
,修改哪些字段- 注意,修改字段值需要加上{$set:{"key":"newvalue"}},不然{key:"newvalue"}会替换原来的文档,导致其他字段数据丢失
option:
upsert
是如果对应不存在要修改的数据,是否将新的数据插入。默认是false
不插入db.集合名.update()
中的multi
是默认是false
,只更新查找到的第一条文档数据,如果改成true
,将更新所有可匹配的文档。writeConcern
是抛出异常的级别。
- 更新文档可以使用下面几个:
删除数据:
db.集合名.remove(query)
:删除所有符合条件的文档- query :删除的文档的条件。如果条件为{},则删除所有文档 ,query可以参考查找文档中的query filter
- justOne : (可选)如果设为 true 或 1,则只删除一个文档。
- writeConcern :(可选)抛出异常的级别。
想了解更多可以参考官方文档。https://docs.mongodb.com/manual/reference/bson-types/
看完上述内容,是不是对MongoDB的一些基本操作有进一步的了解,如果还想学习更多内容,欢迎关注行业资讯频道。
数据
文档
数据库
服务
条件
类型
名称
格式
存储
字段
更新
多个
参数
命令
更多
代表
对象
形式
选出
参考
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
城管局国家网络安全宣传周
嘉兴晶安软件开发有限公司
中金 软件开发
山东实用的外贸软件开发
互联网络安全课观后感怎么写
网络安全 儿童 宣传标语
nba数据库丹尼格林
网络安全专业学习困难吗
投标软件开发的合理化建议
王者荣耀全球版服务器开发面试
吉林先进网络技术排名靠前
做网络安全收入
微信总是显示修复数据库
广州新华互联网科技学费
怀旧服服务器老是被清空
烟台数动科技有限公司工业互联网
matlab输入实验数据库
阿里云服务器网站根目录
中国银行软件开发面试
网络安全小课堂作文
golden db数据库原理
数据库是谁都能用么
北邮 数据库 期末
telent服务器端口
关闭数据库文件的方法
为什么服务器主板都是eatx
tribon 数据库
万方数据库上市公司
英雄联盟服务器修复需要多久
软件开发工程师可以自学吗