mongodb(笔记向,有点乱哈)

基于分布式文件存储的数据库,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的连接对象,获取库,获取表

新增:获取要操作的数据库表,构造新增对象,然后插入数据

修改:构造修改数据,修改数据

查询

删除

获取连接对象,操作方法即可。

视频太无聊了,妈呀真的坚持不住,最后还是直接看文档,快速过了下脑

相关推荐
YOU OU8 小时前
Redis基础常识与命令
数据库·redis·缓存
Database_Cool_10 小时前
OLTP 和 OLAP 区别详解:分析型数据库和事务型数据库怎么选(附阿里云 AnalyticDB MySQL 选型指南)
数据库·mysql·阿里云
爱写代码的阿森11 小时前
鸿蒙三方库 | harmony-utils之KvUtil键值型数据库操作详解
数据库·华为·harmonyos·鸿蒙·huawei
Database_Cool_11 小时前
单机 MySQL 迁移到分布式数据库方便吗?阿里云 PolarDB-X 100% MySQL 协议兼容零改造平滑迁移
数据库·分布式·mysql
姜太小白12 小时前
【MySQL】 索引优化实战:解决 WHERE 等值 + IS NULL 查询,TEXT 字段报错 1167 的完整指南
数据库·mysql
窝子面12 小时前
手搓最简前后端协作-node
javascript·数据库
吳所畏惧12 小时前
宝塔面板Redis密码修改指南:SSH命令修改 vs 面板UI界面修改,哪个更靠谱?
运维·服务器·数据库·redis·缓存·ssh
DFT计算杂谈12 小时前
无 Root 权限在 Tesla K80 零门槛部署 DeepSeek 大模型
linux·服务器·网络·数据库·机器学习
HPFBoy13 小时前
log4net 数据库存日志正确配置
数据库