整理一些MongoDB常用数据库命令


前言


一、数据库操作

1.查询并显示当前存在的数据库

db是数据库英文"database"的首字母简写.
而"所有的数据库", 应当为复数加"s".

show dbs

在这里插入图片描述


2.切换并开始操作某数据库

值得一提的是, 在MongoDB中直接use不存在的数据库会默认创建, 比如这里test库并不存在, 但依然正常的执行了.

use 数据库名

在这里插入图片描述
数据库名不可加引号.


3.删除数据库

使用use切换到某个数据库后, 直接执行这一句将该库删除.

db.dropDatabase()

在这里插入图片描述

不要传参数.


二、集合操作

MongoDB中集合的概念, 就像是MySQL中的"数据表".

1.创建一个集合

在这里插入图片描述
上图反例, 不要创建以中文命名的集合.


2.拿到所有集合名并显示

执行结果有几个集合名即说明有几个集合.

db.getCollectionNames()

在这里插入图片描述
不要传参数.


3.依据名称选取并显示某集合

示例翻了个小车, 不要用中文命名集合…

db.getCollection('xxx')

在这里插入图片描述


三、文档操作

1.向集合中存入一条记录

相当于SQL里横向的一行

db.集合名.insert([{属性名1:'属性值1',属性名2:'属性值2',属性名3:'属性值3'}])  

2.向集合中存入多条记录

一次性存入多行,只需要在insert的数组中分为多个对象即可, 一个对象代表集合中的一行.

db.集合名.insert([{属性名1:'属性值1'},db.集合名.insert([{属性名1:'属性值1',属性名2:'属性值2',属性名3:'属性值3'}])])

在这里插入图片描述
db.collection1.find()见下.


3.查询并展示某集合中的所有数据

db.集合名.find()

在这里插入图片描述


4.条件查询

其实主要是以正则表达式的形式来对查找条件进行规定的.
我准备了一些简单的案例在这段, 相信看完后你能够理解…

基本格式: db.数据库名.find(xxx)
条件查询:

语句释义
略.find({属性名:"属性值"});查询带有这条数据的记录;
略.find({属性名:{$gt:??}})查询属性值比??大的属性所在的记录
略.find({属性名:{$lt:??}})查询属性值比??小的属性所在的记录
略.find({属性名:{$gte:??}})查询属性值大于等于??的属性所在的记录
略.find({属性名:{$lte:??}})查询属性值小于等于??的属性所在的记录
db.集合名.find({name:/??/})查询name属性值中含有"??"的数据所在的记录
db.集合名.find({name:/^??/})查询name属性值以"??"开头的所有记录
db.集合名.find({name:/??$/})查询name属性值以"??"结尾的所有记录

现在我写入了4条人物信息数据用于演示:
在这里插入图片描述


db.collection1.find({sex:'female',age:{$gte:17, $lt:25},hobby:'sleep'})

在这里插入图片描述


db.collection1.find({age:{$gt:15, $lt:18}})

在这里插入图片描述


db.collection1.find({name:/^i/, sex: /male/})

在这里插入图片描述


db.baoguo.find({sex:/^f/, age:{$gte:17, $lt:27}, hobby:/ee/})

在这里插入图片描述


db.collection1.find({name:/o$/, sex: /^fe/, hobby:/ep$/})

在这里插入图片描述


5.更新式存入

同样能实现插入数据, 其与insert()的区别是:
若新插入数据与旧数据的_id相同(即主键相同), insert() 不做操作直接插入新的记录, 而save() 则更改旧的记录为新记录.

db.集合名.save({属性名1:'属性值1',属性名2:'属性值2',属性名3:'属性值3'})

6.更新某条记录内的数据

选取 [满足某些条件的记录] 进行更新.
有两种更新方法, 一种是直接替换某数据为新的数据, 另一种是在旧数据基础上拼加新的数据.
$set
$inc

$set: 直接更新旧数据

//这是直接更新旧数据的写法;
db.集合名.update({name:25}, {$set:{name:"io"}, false, true);
                   条件           修改为

在这里插入图片描述
值得一提的是, 在你选择$set这种方法后, 如果选择更新的数据是先前不具有的, 会直接添加而不是报错.
比如上图执行结束后在下图最后一条记录中新添加了"newData": "io".
在这里插入图片描述
这里如果$setnewData1的话, 先前的"one"会被替换为"io".
再比如:
在这里插入图片描述


$inc: 在旧数据基础上加新的数据, 全称increament

//这是在旧数据基础上加的写法;
> db.collection1.update({条件属性:'属性值'},{$inc:{待修改属性: 待加值}},false, true)
                            条件           修改为

现在我写入了4条人物信息数据用于演示:
在这里插入图片描述
我们来让io再小一岁:

db.collection1.update({name:'io'},{$inc:{age: -1}},false, true)
//寻找name为io的记录, 向其age属性加-1

在这里插入图片描述


注意这个方法只能往数字类型上拼接数字类型, 否则会报错.
向字符串值拼接数字和字符串:
在这里插入图片描述
向数字值拼接字符串:
在这里插入图片描述


7.查询并显示去重后的数据

去重查找, 如果有多条满足查找条件的记录,则仅显示每种找到的第一个.

db.集合名.distinct("数据名")

在这里插入图片描述


8.将记录进行排序

语句释义
db.集合名.find(查找条件).sort({age:1})将所有数据依据年龄升序排列
db.集合名.find(查找条件).sort({age:-1})将所有数据依据年龄降序排列

在这里插入图片描述
你也可以规定仅仅将哪些数据进行筛选排序.

db.collection1.find({name:/o/}).sort({age:-1})

在这里插入图片描述


9.删除记录

删除单条记录,

 db.collection1.remove({属性名:属性值})

在这里插入图片描述
其删除条件也可以使用正则表达式来规定:
在这里插入图片描述


总结

操作MongoDB时记下的一点东西…
帮到你的话,我很高兴:)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值