MongoDB

MongoDB介绍

MongoDB是文档数据库,主要存储类似json的bson格式的数据。

文档:相当于关系型数据库的一行数据

集合:文档的集合,相当于关系型数据库的一个表

配置MangoDB步骤

1.在合适的目录下创建data、data/db(你指定的mongodb服务的目录)、data/log

2.进入安装路径的bin目录下,执行 "mongod.exe --dbpath=<你指定的mongodb服务的目录>" 启动数据库服务

3.进入安装路径的bin目录下,执行mongo.exe,进入连接mongodb的客户端(也可以使用mongochef可视化工具连接)

 

操作mongodb数据库

1.创建数据库

use <数据库名称>

注意:如果不存在该数据库则创建并切换到该数据库,否则切换到指定数据库。

示例:db.student.insert({name:"tom", age:18, gender:1, address:"北京", isDelete:0})

只有先插入一条数据后,show dbs命令才能显示新创建的数据库。该语句会自动创建出student集合。

2.删除mydb数据库

use mydb //先切换为当前库

db.dropDatabase()  //删除当前库

3.查看所有库

show dbs

4.查看当前正在使用的数据库

db或db.getName()

5.断开连接

exit

help//查看命令帮助

集合操作

1.查看集合

show collections

2.创建集合

db.createCollection("<集合名>") 或 db.<集合名>.insert(<文档内容>)

示例:db.createCollection("myCollection") 或 db.student.insert({name:"tom", age:18, gender:1, address:"北京", isDelete:0})

区别:方式一创建一个空集合,方式二创建空集合并添加文档内容。

3.删除集合

db.<集合名>.drop()

示例:db.myCollection.drop()

文档操作

1.插入文档

a.使用insert()方法插入文档

db.<集合名>.insert(<文档内容>)

db.<集合名>.insert([<文档1>,  <文档2>, ..., <文档N>])

示例:db.student.insert([{name:"tom", age:18, gender:1, address:"北京", isDelete:0}, {name:"hanmeimei", age:17, gender:0, address:"上海", isDelete:0}])

b.使用save()方法插入文档

db.<集合名>.save(<文档内容>)

说明:如果不指定_id字段,save()与insert()功能相同。如果指定_id字段,则会更新_id字段的数据。

示例:db.student.save({name:"tom", age:18, gender:1, address:"北京", isDelete:0})

           db.student.save({_id:ObjectId("59950962019723fe2a0d8d17"), name:"tom", age:18, gender:1, address:"北京", isDelete:0})

2.更新文档

a.update()方法用于更新已存在的文档

db.<集合名>.update(
<查询条件>,
<操作符和更新对象>,
{
upset:<boolean>,
multi:<boolean>,
writeConcern:<document>
}
)

查询条件:update的查询条件,类似sql中update语句后的where子句
操作符和更新对象:操作符包括$set,$inc等,$set直接更新,$inc在原值基础上累加后更新
upset:可选,如果不存在update的记录,是否作为新数据插入,true为插入,false不插入,默认false
multi:可选,默认false,只更新找到的第一条记录,true则更新查询的所有记录
writeConcern:可选,抛出异常的级别

示例:
db.student.update({name:"lilei"},{$set:{age:25}})
db.student.update({name:"lilei"},{$inc:{age:25}})
db.student.update({name:"poi"},{$set:{age:25}},{multi:true})

b.save()方法通过传入的文档替换已有文档

db.<集合名>.save(
<document>,
{
writeConcern:<document>
}
)

<document>:文档数据
<writeConcern>:可选,抛出异常的级别

3.删除文档

在执行remove()函数前,先执行find()命令来判断执行的条件是否存在是一个良好的习惯。

db.<集合名>.remove(
<查询条件>,
{
justOne:<boolean>,
writeConcern:<document>
}
)

示例:
db.student.remove({name:"tom"})
db.student.remove({name:"poi"},{justOne:true})

4.查询文档

a.find()方法

db.<集合名>.find()

b.find()方法查询指定列

db.<集合名>.find(

<查询条件>,

{

<列名1>:1,

<列名2>:1

}

)

示例:db.student.find({gender:0},{name:1,age:1})  //查询所有女生的姓名和年龄

c.pretty()方法以格式化的方式来显示文档

db.<集合名>.find(<查询条件>, {<列名1>:1, <列名2>:1}).pretty()

d.findOne()方法查询匹配结果的第一条数据

db.<集合名>.findOne(<查询条件>, {<列名1>:1, <列名2>:1})

5.查询条件操作符

db.<集合名>.find({<key>:{<op>:<value>}})

a.大于 $gt

示例:db.student.find(age:{$gt:20})

b.大于等于 $gte

c.小于 $lt

d.小于等于 $lte

e.大于等于和小于等于 $gte和$lte

db.<集合名>.find({<key>:{$gte:<value>, $lte:<value>}})

f.等于

db.<集合名>.find({<key>:<value>})

g.使用_id进行查询

语法:db.<集合名>.find("_id":ObjectId("<id值>"))

示例:db.student.find("_id":ObjectId("5995084b019723fe2a0d8d14"))

h.查询某个结果集的数据条数

db.student.find().count()

i.查询某个字段值当中是否包含另一个值

db.student.find({name:/ilt/})

j.查询某个字段的值是否以另一个值开头

db.student.find({name:/^ilt/})

6.条件查询and和or

a.AND条件

db.<集合名>.find({条件1,条件2,...,条件N})

b.OR条件

语法:db.<集合名>.find({$or:[{条件1},{条件2},...,{条件N}]})

示例:db.student.find({$or:[{age:17},{age:{$gte:20}}]})  //查询年龄大于17或者年龄大于等于20的记录

c.AND和OR联合使用

db.<集合名>.find(

{条件1,

条件2,

$or:[{条件3},{条件4}]

}

7.limit、skip

a.limit()读取指定数量的数据记录

db.student.find().limit(2)

b.skip()跳过指定数量的数据

db.student.find().skip(3)

c.skip与limit联合使用实现分页功能

db.student.find().skip(3).limit(3)

8.排序

升序:db.<集合名>.find().sort({<字段名>:1})

降序:db.<集合名>.find().sort({<字段名>:1})

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值