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 : 此数据类型用于存储正则表达式。

你可能感兴趣的:(db)