mongo基础语句全解析

MongoDB概念解析

SQL术语/概念MongoDB术语/概念解释/说明
databasedatabase数据库
tablecollection数据库表/集合
rowdocument数据记录行/文档
columnfield数据字段/域
indexindexindex.
table joins表连接, MongoDB不支持
primary keyprimary key主键, MongoDB自动将_id字段设置为主键
1.进入mongo数据库: 在本机电脑MongoDB\bin下shift右击 点击“在此处打开命令窗口” 输入mongo

在这里插入图片描述
2.展示所有数据库/所有集合:
输入:show dbs/tables(collections)
在这里插入图片描述
在这里插入图片描述
3.连接指定数据库,如果没有该数据库,则自动新建:
输入:use dbname
在这里插入图片描述
4.显示当前所在数据库:
输入:db
在这里插入图片描述
5.删除当前所在数据库:(可用db来确认所在数据库名)
输入:db.dropDatabase()
在这里插入图片描述
6.创建集合(表):
输入:db.createCollection(‘tablename’,options)
在这里插入图片描述
参数说明:
tablename: 要创建的集合名称
options: 可选参数, 指定有关内存大小及索引的选项
options 可以是如下参数:
字段 类型 描述
capped 布尔 (可选)如果为 true,则创建固定集合。固定集合是指有着固定大小的集合,当达到最大值时,它会自动覆盖最早的文档。
当该值为 true 时,必须指定 size 参数。
autoIndexId 布尔 (可选)如为 true,自动在 _id 字段创建索引。默认为 false。
size 数值 (可选)为固定集合指定一个最大值(以字节计)。
如果 capped 为 true,也需要指定该字段。
max 数值 (可选)指定固定集合中包含文档的最大数量。
在插入文档时,MongoDB 首先检查固定集合的 size 字段,然后检查 max 字段。
7.OR,AND用法
一般用法:or →({$or:[{},{} ] })
and →({ , })
or,and连用→({{}, KaTeX parse error: Expected 'EOF', got '}' at position 13: or:[{},{} ] }̲) 具体使用见find语句中例…regex:/.*白/i}}) (//里是正则写法)
法2:db.lol.find({‘hero’:/白/i}) (//里写要查的关键词)(最简方法)
法3 db.lol.find({‘hero’:{ r e g e x : ′ 白 ′ , regex:'白', regex:,options:‘i’}}) (regex后跟关键词)
在这里插入图片描述
9.3 用or and进行查询
查询hero字段中带“亚”且sex为female的数据
在这里插入图片描述
查询hero字段是‘盲僧’或者skill为‘品尝恐惧’的数据
在这里插入图片描述
查询hero字段中带“亚”且skill为汪汪汪或者sex:male的数据
在这里插入图片描述
操作 格式 范例 RDBMS中的类似语句
等于 {:} db.col.find({“by”:“菜鸟教程”}).pretty() where by = ‘菜鸟教程’
小于 {:{KaTeX parse error: Expected 'EOF', got '}' at position 11: lt:<value>}̲} db.col.find({…lt:50}}).pretty() where likes < 50
小于或等于 {:{KaTeX parse error: Expected 'EOF', got '}' at position 12: lte:<value>}̲} db.col.find({…lte:50}}).pretty() where likes <= 50
大于 {:{KaTeX parse error: Expected 'EOF', got '}' at position 11: gt:<value>}̲} db.col.find({…gt:50}}).pretty() where likes > 50
大于或等于 {:{KaTeX parse error: Expected 'EOF', got '}' at position 12: gte:<value>}̲} db.col.find({…gte:50}}).pretty() where likes >= 50
不等于 {:{KaTeX parse error: Expected 'EOF', got '}' at position 11: ne:<value>}̲} db.col.find({…ne:50}}).pretty() where likes != 50

10.Update(更新,改)语句:
upsert: 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
multi: 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
写法:db.tablename.update()
10.1将hero为大黄的行 sex改为female 且skill改成饿狼突刺
在这里插入图片描述
10.2 将skill为吠叫的行全部改为汪汪汪
db.lol.update({‘skill’:‘吠叫’},{KaTeX parse error: Expected 'EOF', got '}' at position 20: …{'skill':'汪汪汪'}}̲,false,true) ![…lte:}},全部既是multi为true)
在这里插入图片描述
11.删(remove)语句
写法:db.tablename.remove()
删除hero为“大黄”的行
输入:db.lol.remove({‘hero’:’大黄’})
注:字段中没有数据即为null,适用于增删改查

关系型数据库遵循ACID规则
事务在英文中是transaction,和现实世界中的交易很类似,它有如下四个特性:
(1)A (Atomicity) 原子性
原子性很容易理解,也就是说事务里的所有操作要么全部做完,要么都不做,事务成功的条件是事务里的所有操作都成功,只要有一个操作失败,整个事务就失败,需要回滚。
比如银行转账,从A账户转100元至B账户,分为两个步骤:1)从A账户取100元;2)存入100元至B账户。这两步要么一起完成,要么一起不完成,如果只完成第一步,第二步失败,钱会莫名其妙少了100元。
(2)C (Consistency) 一致性
一致性也比较容易理解,也就是说数据库要一直处于一致的状态,事务的运行不会改变数据库原本的一致性约束。例如现有完整性约束a+b=10,如果一个事务改变了a,那么必须得改变b,使得事务结束后依然满足a+b=10,否则事务失败。
(3)I (Isolation) 独立性
所谓的独立性是指并发的事务之间不会互相影响,如果一个事务要访问的数据正在被另外一个事务修改,只要另外一个事务未提交,它所访问的数据就不受未提交事务的影响。
比如现有有个交易是从A账户转100元至B账户,在这个交易还未完成的情况下,如果此时B查询自己的账户,是看不到新增加的100元的。
(4)D (Durability) 持久性
持久性是指一旦事务提交后,它所做的修改将会永久的保存在数据库上,即使出现宕机也不会丢失。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值