MongoDB的入门

花一点时间大致了解了一下MongDB的知识 和基本概念,现在做一个记录

1、什么是MongoDB

MongoDB 是一个跨平台的,面向文档的数据库,是当前 NoSQL 数据库产品中最热门 的一种。它介于关系数据库和非关系数据库之间,是非关系数据库当中功能最丰富,最像关系数据库的产品。它支持的数据结构非常松散,是类似 JSON 的 BSON 格式,因此可以存 储比较复杂的数据类型。

2、MongoDB的特点

MongoDB 最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。它是一个面向集合的,模式自由的文档型数据库。
具体特点总结如下:
(1)面向集合存储,易于存储对象类型的数据
(2)模式自由
(3)支持动态查询
(4)支持完全索引,包含内部对象
(5)支持复制和故障恢复
(6)使用高效的二进制数据存储,包括大型对象(如视频等)
(7)自动处理碎片,以支持云计算层次的扩展性
(8)支持 Python,PHP,Ruby,Java,C,C#,Javascript,Perl 及 C++语言的驱动程
序,社区中也提供了对 Erlang 及.NET 等平台的驱动程序
(9) 文件存储格式为 BSON(一种 JSON 的扩展)

3、MongoDB体系结构

MongoDB 的逻辑结构是一种层次结构。主要由:文档(document)集合(collection)数据库(database)这三部分组成的。逻辑结构是面
向用户的,用户使用 MongoDB 开发应用程序使用的就是逻辑结构。
(1)MongoDB 的文档(document),相当于关系数据库中的一行记录。
(2)多个文档组成一个集合(collection),相当于关系数据库的表。
(3)多个集合(collection),逻辑上组织在一起,就是数据库(database)。
(4)一个 MongoDB 实例支持多个数据库(database)。
文档(document)、集合(collection)、数据库(database)的层次结构如下图:
在这里插入图片描述
对应关系如下:

MongoDb关系型数据库Mysq
数据库(databases)数据库(databases)
集合(collections)表(table)
文档(document)行(row)
4、常用的数据类型

1、布尔型

{"a":true}

2、null用来表示空值或者不存在的字段

{"a":null}

3、数值型、默认是使用64位的浮点类型

//这里的3其实是浮点类型
{"a":3} 
//使用Number("3")显示声明是int类型
{"x":NumberInt("3")}
//使用NumberLong("3")声明为long类型

4、日期类型

{"x":new Date()}

5、字符串

{"a""happy"}

6、数组

{"a":["jack","mike"]}

7、嵌套

{"a":{"b":"c"}}
安装MongoDB

安装步骤,非常简单 直接下一步下一步,安装完成之后配置环境变量就可以用了。进入MongoDb安装之后的目录
在这里插入图片描述
环境变量配置好了之后进入cmd窗口
1、第一步服务端命令开启服务:

// 指定数据文件夹 并且开启服务(之前要先创建一个文件)
mongod --dbpath=d\tempdata

2、客户端命令连接服务
再次打开一个cmd窗口(第一个窗口不要关闭)
输入命令:

//可以通过 --prot指定端口 默认27017
mongo

默认就连上了一个test数据库
在这里插入图片描述
创建一个新的数据库,并切换过去
输入use mydb 回车


> use mydb
switched to db mydb
>

1、添加数据

db.集合名称.insert(数据)
注意:mongdo的主键必须设置为_id

执行下面的语句 ,往数据库中插入数据(创建了一个mycollecion集合)

db.mycollection.insert({"_id": "001","mobile": "123456", "nickname": "钢铁侠", "sex": "男", "interest": "我喜欢泡妞","fans":NumberInt(2020)});
db.mycollection.insert({"_id": "002","mobile": "123456", "nickname": "蜘蛛侠", "sex": "男", "interest": "我喜欢飞来飞去"},"fans":NumberInt(2030));
db.mycollection.insert({"_id": "003","mobile": "123456", "nickname": "绿巨人", "sex": "男", "interest": "我喜欢生气"},"fans":NumberInt(2040));
db.mycollection.insert({"_id": "004","mobile": "123456", "nickname": "鹰眼", "sex": "男", "interest": "我喜欢射箭"},"fans":NumberInt(2050));
db.mycollection.insert({"_id": "005","mobile": "123456","nickname": "美国队长", "sex": "男", "interest": "我喜欢健身"},"fans":NumberInt(2060));
db.mycollection.insert({"_id": "006","mobile": "123456", "nickname": "雷神", "sex": "男", "interest": "我喜欢玩锤子"},"fans":NumberInt(2070));

2、查找所有数据

db.集合名称.find()

> db.mycollection.find();
{ "_id" : "001", "mobile" : "123456","nickname" : "钢铁侠", "sex" : "男", "interest" : "我喜欢泡妞" ,"fans":2020}
{ "_id" : "002", "mobile" : "123456","nickname" : "蜘蛛侠", "sex" : "男", "interest" : "我喜欢飞来飞去","fans":2030 }
{ "_id" : "003", "mobile" : "123456", "nickname" : "绿巨人", "sex" : "男", "interest" : "我喜欢生气" ,"fans":2040}
{ "_id" : "004", "mobile" : "123456", "nickname" : "鹰眼", "sex" : "男", "interest" : "我喜欢射箭" ,"fans":2050}
{ "_id" : "005", "mobile" : "123456", "nickname" : "美国队长", "sex" : "男","interest" : "我喜欢健身","fans":2060 }
{ "_id" : "006", "mobile" : "123456", "nickname" : "雷神", "sex" : "男", "interest" : "我喜欢玩锤子","fans":2070 }
>

**3、按条件查找 **

db.集合名称.find(查询条件)
查询_id为003的数据
db.mycollection.find({_id:“003”})

> db.mycollection.find({_id:"003"});
{ "_id" : "003", "mobile" : "123456",  "nickname" : "绿巨人", "sex" : "男", "interest" : "我喜欢生气","fans":2040 }
>

4、更新文档

db.集合名称.update({},{}).
里面的第个json是搜索条件表名要更新哪些数据
第二个代表是要进行更新的操作
//更新003号的 insterest为 我喜欢打架
db.mycollection.update({_id:“003”},{$set:{interest:“我喜欢打架”}});

> db.mycollection.update({_id:"003"},{$set:{interest:"我喜欢打架"}});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.mycollection.find({_id:"003"});                            "}});
{ "_id" : "003", "mobile" : "123456","nickname" : "绿巨人", "sex" : "男", "interest" : "我喜欢打架","fans":2040 }
>

5、删除数据

db.集合名称.remove({})
移除nickname=緑巨人的数据
db.mycollection.remove({nickname:“绿巨人”})

> db.mycollection.remove({nickname:"绿巨人"});
WriteResult({ "nRemoved" : 1 })
>

6、统计数量

*db.集合名称.count({})
{}填写统计数据的条件
例如:查询fans为2020的条数
db.mycollection.count({fans:2020});

> db.mycollection.count({fans:2020});
1
>

7、列值增长

**db.集合名称.update({},{KaTeX parse error: Expected 'EOF', got '}' at position 7: inr:{}}̲)** 例如:id为001的f…inc:{fans:NumberInt(1)}} );

> db.mycollection.update({_id:"001"},{$inc:{fans:NumberInt(1)}} );
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.mycollection.find({_id:"001"});
{ "_id" : "001", "mobile" : "123456", "nickname" : "钢铁侠", "sex" : "男", "interest" : "我喜欢泡妞"
, "fans" : 2021 }

** 8 查询条件 大于 小于**

db.集合名称.find({ “field” : { $gt: value }}) // 大于: field > value
db.集合名称.find({ “field” : { $lt: value }}) // 小于: field < value
db.集合名称.find({ “field” : { $gte: value }}) // 大于等于: field >= value
db.集合名称.find({ “field” : { $lte: value }}) // 小于等于: field <= value
db.集合名称.find({ “field” : { $ne: value }}) // 不等于: field != value
例如:查询fans小于2040的数据

> db.mycollection.find({fans:{$gt:2040}});
{ "_id" : "004", "mobile" : "123456", "nickname" : "鹰眼", "sex" : "男", "interest" : "我喜欢射箭""fans" : 2050 }
{ "_id" : "005", "mobile" : "123456", "nickname" : "美国队长", "sex" : "男", "interest" : "我喜欢健身", "fans" : 2060 }
{ "_id" : "006", "mobile" : "123456", "nickname" : "雷神", "sex" : "男", "interest" : "我喜欢玩锤子, "fans" : 2070 }
>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值