非关系型数据库mongodb
mongoDB
非关系型数据库
Mongodb则是由数据库(database),集合(collection),文档对象(document)三个层次组成.
Mongodb中的集合(相当于关系型数据库中的表)但是没有没有了表与表之间的关系,以及列和行的概念,
集合:即一组文档,多个文档存放在一起即变成集合,类似于mysql中的表.数据库:多个集合组合在一起即变成数据库.这体现了其模式自由的特点.
类别:MongoDB
数据库:Db
表:collection
行:documenrt
字段变动耦合性:弱
关系型数据库
传统的关系型数据库一般是由数据库(database),表(tables),记录(record)三个层次的概念组成,
类别:mysql
数据库:db
表:table
行:row
字段变动耦合性:强
mongodb基本操作
- 开始感受MongoDB的使用
- 连接MongoDB在MongDB的安装路径下的Bin文件夹中打开CMD 注意:要使用系统管理员的CMD
- 语法:mongo ip地址:端口号(mongodb的默认端口号为27017)/数据库名 (默认连接test)
- 查看当前数据库
show databases
2.增加切换数据库
use [db名称]
3.删除数据库
use [db名称]
db.dropDatabase() // D记得大写
4.查看数据库当中的集合
show collections
5.创建collection
db.createCollection([collection名称]) 只创建
db.[collection名称].insert({json数据}); 创建添加数据
6.删除集合
db.[collection名称].drop();
7.插入数据语句
- insert方法插入
db.COLLECTION_NAME.insert( {“key”:”val”,`````} )-
插入记录成功之后,mongodb会默认为每一个文档都添加一个id的字段,并且 同一集合中的id是唯一的,该字段可以是任意数据类型,默认的为objectId
-
save方法插入
db.COLLECTION_NAME.save(document)
save和insert有什么区别呢?
insert: 若新增数据的主键已经存在,则会抛异常提示主键重复,不保存当前数据。
save: 若新增数据的主键已经存在,则会对当前已经存在的数据进行修改操作。
-
8.批量插入数据语句
db.COLLECTION_NAME.insert([document1,document2,document3])
9.MongoDB文档管理-查询
db.[collection名称].find();//查询集合中所有的记录
db.[collection名称].find().pretty(); //格式化查询更加美观的显示数据,不至于太紧凑
-
按条件查询
-
db.[collection名称].find({"key":value});
-
第二个参数查询列格式说明 数字1代表需要查询的 0代表除此以外的(_id会默认显示)
第二个查询参数里也可以有多个key:val 来进行更多内容筛选
条件运算符条件操作符用于比较两个表达式并从mongoDB集合中获取数据。
db.[collection名称].find({ key: {$gt : 100}} -
-
And查询 find() 方法可以传入多个键(key),每个键(key)以逗号隔开,即常规 SQL 的 AND 条件。
- db.[collection].find({key1:value1, key2:value2})
比如有多个年龄14的人 选择 其中Name 为 haha的人
- db.[collection].find({key1:value1, key2:value2})
-
Or查询OR 条件语句使用了关键字 $or
- db.[collection].find({$or:[{key1:value1},{key2:value2}] }).pretty()
选择名字是haha的或者是年龄是13的的文档
- db.[collection].find({$or:[{key1:value1},{key2:value2}] }).pretty()
10.排序按照首字母
db.[集合名称].find().sort({KEY:1});
key:要排序的字段 1:正序 -1:倒序