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的连接对象,获取库,获取表

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

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

查询

删除

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

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

相关推荐
Karoku06620 分钟前
【企业级分布式系统】ELK优化
运维·服务器·数据库·elk·elasticsearch
小技与小术2 小时前
数据库表设计范式
数据库·mysql
安迁岚2 小时前
【SQL Server】华中农业大学空间数据库实验报告 实验三 数据操作
运维·服务器·数据库·sql·mysql
安迁岚2 小时前
【SQL Server】华中农业大学空间数据库实验报告 实验九 触发器
数据库·sql·mysql·oracle·实验报告
Loganer2 小时前
MongoDB分片集群搭建
数据库·mongodb
LKID体2 小时前
Python操作neo4j库py2neo使用之创建和查询(二)
数据库·python·neo4j
刘大浪2 小时前
后端数据增删改查基于Springboot+mybatis mysql 时间根据当时时间自动填充,数据库连接查询不一致,mysql数据库连接不好用
数据库·spring boot·mybatis
一只爱撸猫的程序猿2 小时前
简单实现一个系统升级过程中的数据平滑迁移的场景实例
数据库·spring boot·程序员
无敌岩雀2 小时前
MySQL中的索引
数据库·mysql
a_安徒生3 小时前
linux安装TDengine
linux·数据库·tdengine