MongoDB入门——安装与命令介绍

                                         MongoDB入门


 一、mongoDB介绍

1.简介:

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

MongoDB 的官方网站地址是:http://www.mongodb.org/
一个文档相当于mysql的一行记录,

2.适用场景:

  • 数据量大
  • 数据的价值低(数据少量丢失,影响不大)
  • 写入操作频繁

3.特点

  • 面向集合存储,易于存储对象类型的数据
  • 模式自由
  • 支持动态查询
  • 支持完全索引,包含内部对象
  • 支持复制和故障恢复
  • 使用高效的二进制数据存储,包括大型对象(如视频等)
  • 自动处理碎片,以支持云计算层次的扩展性
  • 支持 Python,PHP,Ruby,Java,C,C#,Javascript,Perl 及 C++语言的驱动程序,社区中也提供了对 Erlang 及.NET 等平台的驱动程序
  • 文件存储格式为 BSON(一种 JSON 的扩展)

4.mysql的数据结构

  • MongoDB 的文档(document),相当于关系数据库中的一行记录。
  • 多个文档组成一个集合(collection),相当于关系数据库的表。
  • 多个集合(collection),逻辑上组织在一起,就是数据库(database)。
  • 一个 MongoDB 实例支持多个数据库(database)。

5.MongoDB与MySQL数据库逻辑结构概念的对比

MongoDb关系型数据库Mysql
数据库(databases)数据库(databases)
集合(collections)表(table)
文档(document) 行(row)

6.数据类型

数值类型表达方式
null用于表示空值或者不存在的字段,{“x”:null}
布尔型布尔类型有两个值true和false,{“x”:true}
数值shell默认使用64为浮点型数值。{“x”:3.14}或{“x”:3}。对于整型值,可以使用NumberInt(4字节符号整数)NumberLong(8字节符号整数),{“x”:NumberInt(“3”)}{“x”:NumberLong(“3”)}
字符串UTF-8字符串都可以表示为字符串类型的数据,{“x”:“呵呵”}
日期日期被存储为自新纪元依赖经过的毫秒数,不存储时区,{“x”:new Date()}
正则表达式查询时,使用正则表达式作为限定条件,语法与JavaScript的正则表达式相同,{“x”:/[abc]/}
数组数据列表或数据集可以表示为数组,{“x”: [“a“,“b”,”c”]}
内嵌文档文档可以嵌套其他文档,被嵌套的文档作为值来处理,{“x”:{“y”:3 }}  对象Id:对象id是一个12字节的字符串,是文档的唯一标识,{“x”: objectId() }
二进制数据二进制数据是一个任意字节的字符串。它不能直接在shell中使用。如果要将非utf-字符保存到数据库中,二进制数据是唯一的方式。
代码查询和文档中可以包括任何JavaScript代码,{“x”:function(){/…/}}

 

二、mongoDB.msi安装到win10本地

http://www.manongjc.com/article/5554.html

要将Mongo 安装的bin目录路径设置到环境变量,这样,在win+r打开黑窗口的时候输入mongo会直接连上mongo数据库

 三、mongo的常用命令

1.查询所有的数据库:show databases

2.查询语句:db.集合名.find()

3.创建数据库:

方式一:

 use 要创建数据库的名字——>db.createCollection(name, options)(name: 要创建的集合名称,options: 可选参数, 指定有关内存大小及索引的选项)

方式二:

 use 要创建数据库的名字———>db.要创建集合的名字.insert({})(直接假定一个集合并往里面添加数据即可)

4.根据某条件查询

db.集合名.find({"a":"b"}),查询属性a=b的文档(记录),属性a的引号可要可不要

5.根据条件只查询其中的一条数据

 db.集合名.findOne({a:"b"})

6.查询数据前n条数据

db.集合名.find().limit(n)

7.修改某条记录的一个属性值,其它值不改变

db.spit.update({_id:"1"},{visits:NumberInt(1000)}) ——>这个修改会使visits的其它属性消失

正确的修改方式:

db.spit.update({_id:"2"},{$set:{visits:NumberInt(2000)}})

8.删除集合里的某条记录

db.集合名称.remove(条件)

9.删除当前表

db.dropDatabase()

10.查询当前库中的所有集合

 show collections

11.统计记录数

db.集合名.count()——>查询集合的所有记录数

db.集合名.count({a:"b"})——>统计符合此条件的所有记录数

12.模糊查询

db.spit.find({content:/流量/})——>内容里面包含”流量“字段

db.spit.find({content:/^加班/})——>内容以”加班“开头

db.spit.find({content:/加班^/})——>内容以”加班“结尾

db.spit.find({name:/XXX/i})——>忽略大小写

13.比较操作查询

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

14.包含与不包含查询

db.spit.find({userid:{$in:["1013","1014"]}})

db.spit.find({userid:{$nin:["1013","1014"]}})

15.条件连接查询

and查询

db.spit.find({$and:[ {visits:{$gte:1000}} ,{visits:{$lt:2000} }]})——>查询吐槽集合中visits大于等于1000 并且小于2000的文档

or查询

db.spit.find({$or:[ {userid:"1013"} ,{visits:{$lt:2000} }]})——>查询吐槽集合中userid为1013,或者浏览量小于2000的文档记录

16.在原值上进行增减

db.spit.update({_id:"2"},{$inc:{visits:NumberInt(1)}} )

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值