MongoDB小记

MongoDB简介:

MongoDB是非关系型数据库,NoSQL,面向文档,其内存储的是一种json-like结构化数据,它介于关系数据库和非关系数据库之间。
主要解决:
a、对数据库高并发的需求
b、对海量数据的高效率存储和访问的需求
c、对数据库的高可扩展性和高可用性的需求

一、MongoDB安装

下载地址:https://www.mongodb.com/download-center?jmp=nav#community  
安装成功之后  
安装注意事项:
1、配置环境变量:
我的电脑-属性-高级系统设置-环境变量  编辑path
添加 D:\soft\MongoDB\bin

1、启动方法一:

1、在mongoDB安装目录下创建一个data、log文件夹,并创建一个mong.conf文件,内容如下:
dbpath=D:\MongoDB\data\db #数据库路径 自己对应自己安装的  
logpath=D:\MongoDB\logs\mongo.cfg #日志输出文件路径 自己对应自己电脑的   
logappend=true #错误日志采用追加模式    
journal=true #启用日志文件,默认启用    
quiet=true #这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为false    
port=27017 #端口号 默认为27017 
2、MongoDB服务:
管理员身份运行cmd:
> mongod --config "D:\soft\MongoDB\mongo.conf" --install --serviceName "MongoDB"
3、启动:net start MongoDB
MongoDB 服务正在启动 ..
MongoDB 服务已经启动成功。
4、进入MongoDB
> mongo

2、启动方法二:

1、进入cmd,启动MongoDB
> mongod –dbpath  D:\soft\MongoDB\data\
2、进入MongoDB
> mongo

二、MongoDB指令

1、创建数据库

创建数据库test/切换数据库:
>use score
查看数据库:
>show dbs
查看在哪个数据库下:
>db
创建数据表:
>db.createCollection("集合名")  #集合名就是表名

2、删除数据库

删除数据库
> db.dropDatabase()
查看表/集合
> show tables
> show collectiions
删除表
> db.students.drop()
true   #代表删除成功

3、插入数据

插入数据有insert和save两种方法
> db.score.insert("name":"张三","subject":"数学","socre":90)
> db.score.save({"name":"李四","subject":"语文","score":80})
查看数据:
> db.score.find()
结果如下:
{ "_id" : ObjectId("5b025eccb51d0400c6c20f72"), "name" : "张三", "subject" : "数学", "socre" : 90 }
{ "_id" : ObjectId("5b025f3bb51d0400c6c20f73"), "name" : "李四", "subject" : "语文", "score" : 80 }
插入文档:
> db.score.insert({title:"MongoDB overview",description:"MongoDB is a Nosql database",url:"http://www.yiibai.com",tags:["MongoDB","Nosql","database"})
插入多个数据: db.score.insert({},{},.....)
> db.score.insert([{name:"张三",subject:"地理",score:88},{name:"李四",subject:"语文",score:87}])
结果如下:
{ "_id" : ObjectId("5b026102b51d0400c6c20f76"), "name" : "张三", "subject" : "地理", "score" : 88 }
{ "_id" : ObjectId("5b026102b51d0400c6c20f77"), "name" : "李四", "subject" : "语文", "score" : 87 }
美化查看:
> db.score.find().pretty()

4、更新保存文档 update() 注意:如果没有查到,就会实现保存的功能

#$set,修改和condition条件相匹配的数据,只修改单条数据
> db.score.update({score:45},{$set:{subject:"数学"}})
直接将匹配到的数据替换成data,只修改单条数据
> db.score.update({score:45},{subject:"数学"})
结果如下:
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
更新多条数据,需要加multi
> db.score.update({score:45},{$set:{name:"Jerry"}},{multi:true})
修改字段名:
> db.score.update({"_id" : ObjectId("5b025eccb51d0400c6c20f72")},{$rename:{"socre":"score"}})
save() 新增不匹配:如果save不是用id作为查找条件,name则直接插入新的数据
> db.score.save({name:"Mary",subject:"历史",score:90})
结果如下:
WriteResult({ "nInserted" : 1 })

5、删除数据
注意:如果不跟条件,会把此数据库的所有集合都删掉

语法:
db.collectionName.remove(condition,justOne)
condition:删除数据的条件
justOne:是否只删除一条匹配到的数据

> db.score.remove({name:"Mary1"}) #删除匹配到的所有数据
> db.score.remove({name:"张三"},true/1) #加上true或者1,会删除一条
删除所有的数据:
> db.score.remove({})

6、查询数据:

语法:
> db.collectionName.find()
查询所有数据:
> db.score.find()
美化查询的数据:
> db.score.find().pretty()
查找一条数据:
> db.score.findOne()
less than {$lt}             #小于
less than equals {$lte}     #小于等于
greate than {$gt}           #大于
greate than equals {$gte}   #大于等于
not equals {$ne}            #不等于
例子:
查询where语句
> db.score.find({name:"张三"})
查询数据小于50:
> db.score.find({score:{$lt:50}})
查询数据不等于60 !=
> db.score.find({score:{$ne:46}})
逻辑条件查询:

and查询:
> db.score.find({{subject:"地理"},{subject:"语文"}})
or查询:
> db.score.find({$or:[{subject:"地理"},{subject:"语文"}]})
and和or:
查找学科为语文或者地理并且分数大于87的所有数据:
>   db.score.find({$or:[{subject:"地理"},{subject:"语文"}],score:{$gt:87}})
限制查询:
只查3条数据:
> db.score.find().limit(3)
查询第四条到第六条,skip()是跳过几条
> db.score.find().limit(3).skip(3)

MongoDB常见数据类型

String : 这是最常用的数据类型来存储数据。在MongoDB中的字符串必须是有效的UTF-8。
Integer : 这种类型是用来存储一个数值。整数可以是32位或64位,这取决于您的服务器。
Boolean : 此类型用于存储一个布尔值 (true/ false) 。
Double : 这种类型是用来存储浮点值。
Min/ Max keys : 这种类型被用来对BSON元素的最低和最高值比较。
Arrays : 使用此类型的数组或列表或多个值存储到一个键。
Timestamp : 时间戳。这可以方便记录时的文件已被修改或添加
Object : 此数据类型用于嵌入式的文件。
Null : 这种类型是用来存储一个Null值。
Symbol : 此数据类型用于字符串相同,但它通常是保留给特定符号类型的语言使用。
Date : 此数据类型用于存储当前日期或时间的UNIX时间格式。可以指定自己的日期和时间,日期和年,月,日到创建对象。
Object ID : 此数据类型用于存储文档的ID。
Binary data : 此数据类型用于存储二进制数据。
Code : 此数据类型用于存储到文档中的JavaScript代码。
Regular expression : 此数据类型用于存储正则表达式。

猜你喜欢

转载自blog.csdn.net/sinat_30353259/article/details/80396322