MongoDB是一个基于分布式文件存储的数据库,由C++语言编写,旨在为WEB应用提供可扩展的高性能数据存储解决方案。
下载
Download MongoDB Community Server | MongoDB
MongoDB的基本操作
添加数据
db.collection.insertOne(document) // 插入单个文档
db.collection.insertMany([document1, document2, ...]) // 插入多个文档
查询数据
db.student.find() //无条件查询
db.student.find({name:"周瑜"})
//查询性别是男,年龄大于20的信息
db.student.find({sex:"男",age:{$gte:20}})
修改数据
//修改
//把20岁以上的男同学,班级改成2-6
db.student.updateMany({sex:"男",age:{$gte:20}},{$set:{class:"2-6"}})
//把曹操的年龄改成20
db.student.update({name:"曹操"},{$set:{age:20}})
-
query
:用于指定查询条件。 -
update
:用于指定更新操作,常用的更新操作符包括$set
、$inc
等。 -
upsert
:一个可选参数,当为true
时,如果找不到符合查询条件的文档,将插入一个新文档。
删除数据
//删除jack的年龄
db.student.update({name:"jack"},{$unset:{age:1}})
//删除
//删除2-6班所有的男同学
db.student.remove({class:"2-6",sex:"男"})
//删除所有教师记录
db.teacher.remove({})
对数组操作
//给jack添加教务主任角色
db.teacher.update({name:"jack"},{$push:{role:"教务主任"}})
//删除jack的副校长角色
db.teacher.update({name:"jack"},{$pull:{role:"副校长"}})
查询表达式
-
基本查询
-
{field: value}
:查询field
列的值为value
的文档。
-
-
比较运算符
-
$ne
:不等于。例如,{field: {$ne: value}}
查询field
列的值不等于value
的文档。 -
$gt
:大于。 -
$gte
:大于等于。 -
$lt
:小于。 -
$lte
:小于等于。 -
$in
:在...之内。例如,{field: {$in: [v1, v2, ...]}}
查询field
列的值在数组[v1, v2, ...]
中的文档。 -
$nin
:不在...之内。
-
-
逻辑运算符
-
$and
:所有条件都满足。 -
$or
:至少一个条件满足。 -
$nor
:所有条件都不满足。
-
-
元素运算符
-
$exists
:检查字段是否存在。例如,{field: {$exists: 1}}
查询含有field
字段的文档。 -
$all
:数组字段包含所有指定元素。例如,{field: {$all: [v1, v2, ...]}}
查询field
列是一个数组且至少包含v1, v2, ...
的文档。
-
-
正则表达式
-
使用
$regex
进行模式匹配。例如,{field: {$regex: /pattern/}}
查询field
字段匹配正则表达式pattern
的文档。
-
-
$where
-
允许使用JavaScript表达式作为查询条件。例如,
db.collection.find({$where: 'this.field > 10'})
。
-