MongoDB常用的命令行操作

一、启动mongo服务

运行脚本./mongod 可以通过-dbpath来指定数据库路径
这里写图片描述
从日志上可以看到mongo服务的默认配置信息,还可一看到每一个连接到mongo服务的客户端的信息,已经客户端操作信息

二、连接mongo服务

1、连接本机mongo服务
运行脚本./mongo
这里写图片描述

2、连接远程的mongo服务
执行shell命令./mongo mongodb://<user>:<paswword>@<serverIp>:<serverPort>/[db]?[options]
注意:不指定db默认连接到test数据库
option是可选参数,格式为:safe=true;w=2;wtimeoutMS=2000,多个选项之间用‘;‘连接

三、mongo操作之数据库

1、切换或者创建数据库
执行命令use db_name,如果db_name不存在、则创建一个数据库,存在则直接连接
这里写图片描述
2、查看所有的数据库
执行命令show dbs查看所有数据库
这里写图片描述
注意:没有显示刚创建的数据库是因为数据库中没有数据

admin: 从权限的角度来看,这是”root”数据库。要是将一个用户添加到这个数据库,这个用户自动继承所有数据库的权限。一些特定的服务器端命令也只能从这个数据库运行,比如列出所有的数据库或者关闭服务器
local: 这个数据永远不会被复制,可以用来存储限于本地单台服务器的任意集合
config: 当Mongo用于分片设置时,config数据库在内部使用,用于保存分片的相关信息
3、查看当前数据库对象
执行命令db查看当前数据库对象或集合,默认test
这里写图片描述
4、删除当前数据库
执行命令db.dropDatabase
这里写图片描述

四、mongo操作之数据集和文档

1、创建数据集
db.createCollection(<name>, [options])
name:数据集参数
options:为可选项,如下表

字段类型描述
capped布尔如果为 true,则创建固定集合。固定集合是指有着固定大小的集合,当达到最大值时,它会自动覆盖最早的文档。当该值为 true 时,必须指定 size 参数
size数值为固定集合指定一个最大值(以字节计)。如果 capped 为 true,也需要指定该字段。
max数值指定固定集合中包含文档的最大数量

创建一个集合log,固定集合大小为5242880KB,最多放500个
这里写图片描述

2、查看所有的数据集
show collections
这里写图片描述
3、数据集中插入文档
db.<name>.insert(<document>)同方法db.<name>.insertOne(<document>)
下面插入一条数据
这里写图片描述
下面插入多条数据,同方法db.<log>.insertMany(<document>)
这里写图片描述
4、查询数据集
4.1 基本操作
db.<name>.find([query])
这里写图片描述
query相当于是查询条件,为空则查询所有文档,常用的条件如sql语句中的=、>、<,in,like,and,or
4.2 其他操作
db.<name>.find([query]).pretty()格式化查询结果
db.<name>.find([query]).limit(<number>)限制查询结果条数
db.<name>.find([query]).skip(<number>)跳过查询结果条数
db.<name>.find([query]).sort({<key>:<value>)对查询结果按排序,value为1对key升序、为-1对key降序
pretty、limit、skip、sort可以一起使用,执行顺序为skip->limit->sort->pretty
5、删除数据集
db.<name>.drop()
这里写图片描述
6、更新文档

db.<name>.update(<query>,<update>,
{upsert: <boolean>,multi: <boolean>,writeConcern: <document>}
)

query : update的查询条件,类似sql update查询内where后面的。
update : update的对象和一些更新的操作符(如 , , <script type="math/tex" id="MathJax-Element-1">,</script>inc…)等,也可以理解为sql update查询内set后面的
upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
writeConcern :可选,抛出异常的级别。

建议用新版本的去操作

db.collection.updateOne(<query>, <update>, <options>)
db.collection.updateMany(<query>, <update>, <options>)
db.collection.replaceOne(<query>, <replacement>, <options>)

下面的操作将所有name为service1.log的记录全部修改为service3.log
这里写图片描述

writeConcern可选参数类型

异常级别说明
WriteConcern.NONE没有异常抛出
WriteConcern.NORMAL仅抛出网络错误异常,没有服务器错误异常
WriteConcern.SAFE抛出网络错误异常、服务器错误异常;并等待服务器完成写操作。
WriteConcern.MAJORITY:抛出网络错误异常、服务器错误异常;并等待一个主服务器完成写操作。
WriteConcern.FSYNC_SAFE:抛出网络错误异常、服务器错误异常;写操作等待服务器将数据刷新到磁盘。
WriteConcern.JOURNAL_SAFE抛出网络错误异常、服务器错误异常;写操作等待服务器提交到磁盘的日志文件。
WriteConcern.REPLICAS_SAFE抛出网络错误异常、服务器错误异常;等待至少2台服务器完成写操作。

7、删除文档

db.collection.deleteMany(<query>)
db.collection.deleteOne(<query>)
<query>为空删除所有文档

五、文档索引

默认情况下的索引是 _id

db.<name>.createIndex( <key>:<index>..., [options] )

key为索引,index为1时按升序创建索引,为-1按降序创建索引,key可以有多个。
options为索引类型参数,可选参数如下表

参数名类型描述
backgroundBoolean建索引过程会阻塞其它数据库操作,background可指定以后台方式创建索引,即增加 “background” 可选参数。 “background” 默认值为false。
uniqueBoolean建立的索引是否唯一。指定为true创建唯一索引。默认值为false.
namestring索引的名称。如果未指定,MongoDB的通过连接索引的字段名和排序顺序生成一个索引名称。
dropDupsBoolean在建立唯一索引时是否删除重复记录,指定 true 创建唯一索引。默认值为 false.
sparseBoolean对文档中不存在的字段数据不启用索引;这个参数需要特别注意,如果设置为true的话,在索引字段中不会查询出不包含对应字段的文档.。默认值为 false.
expireAfterSecondsinteger指定一个以秒为单位的数值,完成 TTL设定,设定集合的生存时间。
vindex version索引的版本号。默认的索引版本取决于mongod创建索引时运行的版本。
weightsdocument索引权重值,数值在 1 到 99,999 之间,表示该索引相对于其他索引字段的得分权重。
default_languagestring对于文本索引,该参数决定了停用词及词干和词器的规则的列表。 默认为英语
language_overridestring对于文本索引,该参数指定了包含在文档中的字段名,语言覆盖默认的language,默认值为 language.
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值