初识MongoDB(一) mongodb基本操作
使用背景:
项目中需要存储一些下游的需求,需求的的格式是个树形的格式,例如某个需求里面包含n个城市某个品牌某个车系,可以简化成下图。(只是作为使用场景来分析,可以跳过)
按照关系型数据库来说的话,有两种方案:
1 需要3张表来实现下面的机构需要需求表存储需求的基本信息,需求和城市的关联表(一个需求对多个城市),需求、城市、车系的关联关系表(一个城市的某个需求下面有多个车系)。
2 一张表存储:一个需求对应多行记录,每行记录中的最小粒度是城市,城市中的车系用逗号拼接。如下图:
需求id | 城市id | 车系 |
需求1 | 城市1 | 车系1,车系2 |
需求1 | 城市2 | 车系1 |
缺点:如果使用第一种的话,会很麻烦,需要建3张表,需要做关联查询,数据有很多冗余的;使用第二种的话,由于存在车系1,车系2这种存储,如果根据车系进行查询的话,需要使用find_in_set函数,如果数据量在比较大的情况下,性能是个大问题。
对于这种数据,所以决定选择使用mongodb来进行存储。如果多个城市或者多个车系的话,使用mongo种的array来进行存储。
基本操作
由于项目是使用spring data mongodb来进行的crud操作,基本的操作都已经做了封装,确实是可以对mongodb的语法进行屏蔽,但是对于一些复杂性的查询,以及一些索引的建立,还是需要对mongodb的语句等各方面的东西进行了解的。所以先翻看了一下菜鸟教程,希望能最快速的掌握基础及常用的语法,以便后续查看,后续再对一些高级的东西进行补充。
- mongodb连接串:
mongodb://fred:foobar@localhost/baz 使用用户名fred,密码foobar登录localhost的baz数据库。
- 数据库相关
use jxt 创建数据库 jxt ,如果该数据库已经存在,则切换到这个数据库。可以通过show dbs来查看所有的数据库,此时是显示不出来这个数据库的, 要显示它,我们需要向 jxt 数据库插入一些数据。
如果需要删除jxt数据库的话,需要切换到jxt这个数据库,通过db查看当前所在的数据库,如果不是的话,可以通过use jxt 切换到数据库jxt,通过db.dropDatabase()来删除当前的数据库。
- 表相关(collection)
创建表的话,可以通过db.createCollection(name, options) 来创建,但是一般情况下我们是不需要手动创建的,直接插入数据的时候会自动创建相应的表。手动创建的时候可以在name中指定表的名字,options中配置一些参数。如下:
db.createCollection("mycol", { capped : true, autoIndexId : true, size : 6142800, max : 10000 } )
创建固定大小的表 mycol,整个集合空间大小 6142800 KB, 文档最大个数为 10000 个。下面是参数的解释:
删除表:db.mycol2.drop() 其中mycol2为表名。
插入数据:db.collection.insertOne() 和 db.collection.insertMany()。 一个是插入一条,一个是插入多条,插入多条的时候数据是一个数组。
更新数据:db.collection.update( <query>, <update>, { upsert: <boolean>, multi: <boolean>, writeConcern: <document> } );例如:db.col.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}}) 会将title=MongoDB 教程 数据改为MongoDB。
删除数据:db.collection.remove( <query>, { justOne: <boolean>, writeConcern: <document> } )
查询待记录。。。
初识MongoDB(一) mongodb基本操作相关推荐
- MongoDB数据表基本操作
MongoDB数据表基本操作 查看全部数据表 > use ChatRoom switched to db ChatRoom > show collections Account Chat ...
- 二、MongoDB简介及基本操作
mongodb是一个基于文档的强大.灵活.易于扩展的通用型数据库.是基于分布式文件存储的数据库.其由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. mongodb也是一个 ...
- MongoDB:mongodb在项目开发时的安全验证、分页查询操作
MongoDB:mongodb在项目开发时的安全验证.分页查询操作. 对于数据库而言,在项目应用中都需要安全验证,不然,就会报错,呵呵-- 现在贴出来我在项目中是怎么做的. 原创文章,转载请注明出处: ...
- BigData之MongoDB:MongoDB基于分布式文件存储数据库的简介、下载、案例应用之详细攻略
BigData之MongoDB:MongoDB基于分布式文件存储数据库的简介.下载.案例应用之详细攻略 目录 MongoDB的简介 1.MongoDB的主要功能特性 2.对MongoDB进行增删改查( ...
- PHP mongodb运用,MongoDB在PHP下的应用学习笔记
1.连接 mongodb默认端口是:27017,因此我们连接mongodb:$mongodb = new Mongo('localhost') 或者指定IP与端口 $mongodb = new Mon ...
- 安装MongoDB Install MongoDB on Ubuntu
MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案. MongoDB是一个介于关系数据库和 非关系数据库之间的产品,是非关系数据库当中 ...
- golang常用库之-mgo.v2包、MongoDB官方go-mongo-driver包、七牛Qmgo包 | go操作mongodb、mongodb bson
文章目录 golang常用库之-mgo.v2包.MongoDB官方go-mongo-driver包.七牛Qmgo包 | go操作mongodb.mongodb bson 一.[不推荐]mgo.v2包 ...
- 已解决(MongoDB安装报错)Service ‘MongoDB Server (MongoDB)’ (MongoDB) failed tostart. Verify that you have su
成功解决(MongoDB安装报错):Service 'MongoDB Server (MongoDB)' (MongoDB) failed tostart. Verify that you have ...
- Service MongoDB Server( MongoDB( MongoD8) failed to start. Verify that you have sufficient priilege
报错:Service MongoDB Server( MongoDB( MongoD8) failed to start. Verify that you have sufficient priile ...
- mongodb 服务器性能监控,mongodb监控 | mongodb数据库监控 - ManageEngine Applications Manager...
MongoDB监控 MongoDB是否一个非关系型数据库,用来快速开发并支持大量数据处理和存储.非关系型数据库,例如MongoDB和Cassandra,可以让应用没有限制的使用,极大地扩展了业务架构的 ...
最新文章
- 中国研究的超级系统计算机,学习电脑 - Book3 - V1.30 - 超级系统恢复
- jmeter测试java代码
- 设置npm的registry
- java final类的写法_重拾JavaSE基础——抽象类、接口、代码块、final和枚举
- linux下什么文件不能修改,Linux和Unix下root也不能修改文件与目录的命令
- LRN和Batch Norm
- python ckeditor上传图片400错误_又一款python开发神器
- struct和typedef struct区别
- Redis再入门 codis 对比 Memcached
- 三个等于号===和两个等于号==的区别
- 机器学习-ID3决策树算法(附matlab/octave代码)
- WPF/Silverlight 控件的几幅继承关系图
- 章节十一、1-Junit介绍
- 最经典25本Python编程开发电子书精粹
- 开心网“卖身”:错过转型时机,逆水行舟,不进则退
- SpringBoot 启动时自动执行代码的几种方式
- ETF定投的均线偏离策略分析
- 地铁客流量分析可视化演示系统(附代码)
- がいねんとれいさいのにちじょう
- 基于html5手机移动端对话框特效