Mysql有增删改查,MongDb也有增删改查,运维的大致了解下,不用去特别去记,忘记则查查官方文档就可以,下面进去官方文档来看看mongodb是如何增删改查的。
首先先说下如何连接mongodb:
先启动服务
[root@lgy ~]# systemctl start mongod.service
用ss -ntl或者systemctl status mongod.service来检查我们服务器是否正常起来
[root@lgy ~]# ss -ntl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 127.0.0.1:27017 *:*
LISTEN 0 128 10.0.0.169:27017 *:*
LISTEN 0 50 *:3306 *:*
LISTEN 0 128 *:22 *:*
LISTEN 0 100 127.0.0.1:25 *:*
LISTEN 0 128 :::22 :::*
LISTEN 0 100 ::1:25 :::*
看到27017则证明我们监听端口起来,可以socker连接。
连接mongodb:
[root@lgy ~]# mongo 10.0.0.169:27017
在这里先介绍下MongoDb和关系型数据库对比
mysql术语 | mongodb术语 | 解释 |
---|---|---|
database | database | 数据库 |
table | collection | 数据库表/集合 |
row | document | 数据记录行/文档 |
column | field | 数据字段/域 |
index | index | 索引 |
table joins | 表连接,MongoDB不支持 | |
primary key | primary key | 主键,MongoDB自动将_id字段设置为主键 |
登陆mongodb后查看所有数据库命令:
> show dbs #查询所有数据库
admin 0.000GB
config 0.000GB
local 0.000GB
> show databases #查询所有数据库,此命令跟mysql一样
admin 0.000GB
config 0.000GB
local 0.000GB
默认登陆不指定数据库,登陆进去使用test数据库,用db命令查看:
> db
test
选择指定数据库命令:
> use admin
switched to db admin
> db
admin
关于这里可能有些人疑惑既然进来test数据库为什么show数据库的时候,没看到有test,在MongoDb机制是这样的,你要创建一个数据库直接使用use 数据库名,这个库如果没任何数据改动,默认存在内存,一旦退出则这个库就没。相比我们平常使用的Mysql数据库,要输入数据要先有库,再有表,约束比较多,所以这是MongoDb一个优点。
创建数据库:
官方文档:https://www.mongodb.org.cn/tutorial/8.html
(1)创建数据库并制定名称
> use lgy
switched to db lgy
> db
lgy
(2)联合前面的说法,需要插入点数据,lgy这个数据库才能显示出来。
> db.lgy.insert({"name":"lgy"})
WriteResult({ "nInserted" : 1 })
> show databases
admin 0.000GB
config 0.000GB
lgy 0.000GB
local 0.000GB
删除数据库:
官方文档:https://www.mongodb.org.cn/tutorial/9.html
(1)切换要删除的数据库:
> use lgy
switched to db lgy
(2)执行删除命令:
> db.dropDatabase()
{ "dropped" : "lgy", "ok" : 1 }
(3)查看所有数据库:
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
插入文档:
官方文档:https://www.mongodb.org.cn/tutorial/10.html
插入文档跟创建数据库差不多一样,默认不选择数据库,则在test创建。
插入文档命令:
> db.lgy.insert({"qq":"1106089861"})
WriteResult({ "nInserted" : 1 })
查看数据库:
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
test 0.000GB
查看创建的文档即表:
> use test
switched to db test
> show tables
lgy
删除文档:
官方文档:https://www.mongodb.org.cn/tutorial/12.html
> db.lgy.remove({"qq":"1106089861"})
WriteResult({ "nRemoved" : 1 })
更改文档:
官方文档:https://www.mongodb.org.cn/tutorial/11.html
> db.lgy.update({"qq":"1106089861"},{$set:{"qq":"1106089861@qq.com"}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
查询文档
查询所有文档命令:
> db.lgy.find()
{ "_id" : ObjectId("60cb6ed8ccbda5ff5a570f95"), "qq" : "1106089861@qq.com" }
查询第一条文档命令:
> db.lgy.findOne()
{ "_id" : ObjectId("60cb6ed8ccbda5ff5a570f95"), "qq" : "1106089861@qq.com" }
查询结果格式化输出:(这个有点类似Mysql中的\G显示方法)
> db.lgy.find().pretty()
增删改查还有各种的例子,大家可以去看看官方文档,我在这里不一一演示,文章简单,表达不全,谢谢观看。