赞
踩
mongo数据库和平时常见的关系型数据库一样,最基本的操作就是增删改查,唯一的区别就是叫法不一样
SQL术语/概念 | MongoDB术语/概念 | 解释/说明 |
---|---|---|
database | database | 数据库 |
table | collection | 数据库表/集合 |
row | document | 数据记录行/文档 |
column | field | 数据字段/域 |
index | index | 索引 |
table joins | 表连接,MongoDB不支持 | |
primary key | primary key | 主键,MongoDB自动将_id字段设置为主键 |
插入文档本质就是向集合中插入数据,用关系型数据库的语句解释就是向数据表中插入数据
语法
#单个插入
db.collection_Name.insertOne(document)
#多个插入
db.collection_Name.insertMany([document])
例子:
#单个插入 db.test1.insertOne({name:"mongo",type:1,value:1}) #多个插入 db.test1.insertMany([ { name:"mysql", type:2, value:2 },{ name:"oracle", type:3, value:3 },{ name:"nosql", type:4, value:4 },{ name:"xiaoming", sex:"男", age:20, address:"江苏省南京市浦口区××××××苑×××××单元×××××楼×××××××户" } ] ) # 查看集合中的文档 db.test1.find()
更新文档本质就是更新文档中的数据,用关系型数据库的语句解释就是更新数据表中的数据
```语法:`
#单行更新
db.test1.updateOne(
<query>,
<update>,
{
upsert: <boolean>,
multi: <boolean>,
writeConcern: <document>
}
)
#多行更新
db.test1.updateMany(
<query>,
<update>,
{
upsert: <boolean>,
multi: <boolean>,
writeConcern: <document>
}
)
参数说明
例子:
不插入只更新第一条记录
db.test1.updateOne({name:"mongo"},{$set:{type:99}})
db.test1.updateMany({name:"redis"},{$set:{type:111}})
查询文档本质就是查询文档中的数据,用关系型数据库的语句解释就是查询数据表中的数据
语法
db.collection_name.find()
普通查询:根据具体的某个条件进行查找
例子:
#查找集合中全部的文档
db.test1.find()
#查找名字为mongo的文档
db.test1.find({name:"mongo"})
#查找值为空的文档
db.test1.find({value:null})
在对数据库中的数据进行操作时,我们经常会使用到模糊查找,在mongo中也支持模糊查找,需要使用到$regex
例子
#查找名字中包含m的文档
db.test1.find({name:{$regex:/m/}})
#查找名字以m开头的文档
db.test1.find({name:{$regex:/^m/}})
在对数据库中的数据进行操作时,我们经常会使用到条件查找,在mongo中也支持条件查找
例子
#查询类型不为111的文档
db.test1.find({type:{$ne:111}})
#查询类型不为111且名字已m开头的文档
db.test1.find({type:{$ne:111},name:{$regex:/^m/}})
#插叙名字为mongo或者type为空的文档
db.test1.find({
$or:
[
{name:"mongo"},
{type:null}
]
})
#插叙名字为mongo或者type为空且value为1的文档
db.test1.find({
$or:
[
{name:"mongo"},
{type:null}
],
value:1
})
MongoDB 中的投影即查询指定的字段,而不是直接查询文档的全部字段。1标识显示,0标识隐藏
语法
db.ollection_name.find({file:1,file2:0})
例子
#插叙名字为mongo或者type为空且value为1的文档,要求只展示名字和类型
db.test1.find({
$or:
[
{name:"mongo"},
{type:null}
],
value:1
},{_id:0,name:1,type:1})
mongo中的限制查询就是限制查询出来数据的数量
语法
db.test1.find().limit(count)
参数说明
count:需要限制的条数
例子:
#限制输出2条
db.test1.find().limit(2)
mongo中的跳跃查询是指跳过指定的条数,然后查找满足条件的文档
语法
db.test1.find().skip(count)
参数说明
count:跳过的条数
例子
#跳过前两条
db.test1.find().skip(2)
#跳过前两条查找,并且返回3条数据,
db.test1.find().skip(2).limit(3)
#跳过前两条查找,并且返回3条数据
db.test1.find().limit(3).skip(2)
在聚合查询时,limit和skip有先后顺序关系
排序查询是指将查询的结果进行排序, 其中 1 为升序排列,而 -1 是用于降序排列。
语法
db.COLLECTION_NAME.find().sort({KEY:1})
例子
db.test1.find().sort({name:-1})
在mongo中删除文档是指删除集合中的数据
语法
单个删除
db.collection.deleteOne(filter, options)
多个删除
db.collection.deleteMany(filter, options)
参数说明
例子
db.test1.deleteOne({type:null})
db.test1.deleteMany({type:null})
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。