基于分布式文件存储的数据库,c++语言,介于关系与非关系数据库之间的产品。非关系数据库中功能最丰富,最像关系数据库的,存储比较复杂的数据类型。
语法有点类似于面向对象的查询语言,几乎可以实现类似数据库单表查询的绝大部分功能,支持建索引提高查询效率
MongoDB安装,略过
sql概念 | mongodb概念 | 说明 |
---|---|---|
database | database | 数据库 |
table | collection | 数据库表/集合 |
row | document | 数据行/文档 |
column | field | 列/字段 |
index | index | 索引 |
table joins | 表关联,mongodb不支持 | |
primary key | primary key | 主键,MongoDB自动将_id字段设置为主键 |
不支持表关联查询
会自动将_id设为主键
和mysql做一下对比
sql dadabase 数据库 table表 row行 column列
mongodb database colletion集合 document文档 filed字段
查看当前所有数据库
show dbs
切换数据库
use admin
怎么感觉和mysql差不多
创建数据库和表
切换数据不会自动创建,要插入数据才会自动创建
切换数据库,并新增数据,就自动创建了数据库
删除表
db.表名.drop()
删库
切到你要删除的库,db.dropDatabase ()
新增
db.表名.insert({})
db.表名.save
查找所有
db.表名.find
更新数据
全都是json对象
db.表名.update({条件},{$set:{修改后的字段值}}) # 更新id=1的数据,age=35,如果age字段不存在,会默认新增该字段 $set似乎有点关键
db.表名.update({条件},{修改后的字段值}) 但是其他字段都会删除掉
一般加上就行了 $set
db.user.remove({id:1})根据id删除
db.user.remove({}) 删除所有
#查询语句结构
db.user.find([query],[fields])
query 是查询的条件
fields 是查询的字段
查询年龄在25-35之间的数据
> db.user.find({age:{lte:35,gte:25}})
查询年龄<=35,且id>=3的
> db.user.find({age:{lte:35},id:{gte:3}})
查询id=1 or id=2的数据
> db.user.find({$or:[{id:1},{id:2}]})
分页查询 skip()跳过几条数据,可以理解为从第几条开始查询 limit()查询的条数
> db.user.find().skip(2).limit(2)
按照年龄倒序排 -1倒序排列 1 正序排列
> db.user.find().sort({age:-1})
查看索引 说明:1表示升序创建索引,-1表示降序创建索引。
> db.user.getIndexes()
创建索引 按照年龄升序创建索引
> db.user.createIndex({age:1})
#删除索引
db.user.dropIndex("age_1")
#或者,删除除了_id之外的索引
db.user.dropIndexes()
#创建联合索引
db.user.createIndex({'age':1, 'id':-1})
#查看索引大小,单位:字节
db.user.totalIndexSize()
api操作
导包
总体思路(感觉比es还简单,反正很简单)
先获取mongodb的连接对象,获取库,获取表
新增:获取要操作的数据库表,构造新增对象,然后插入数据
修改:构造修改数据,修改数据
查询
删除
获取连接对象,操作方法即可。
视频太无聊了,妈呀真的坚持不住,最后还是直接看文档,快速过了下脑