MongoDb基本语法
一、操作mongodb数据库
1、创建数据库
- 语法:use 数据库名
- 说明:如果数据库不存在则创建数据库,否则切换到指定的数据库
- 注意:如果刚刚创建的数据库不在列表内,如果要显示它,我们需要向刚刚的数据库中插入一些数据(db.student.insert({name:'tom',age:18,gender:1,address:"北京",isDelete:0}))
2、删除数据库
前提:使用当前数据库
db.dropDatabse()
3、查看所有数据库
show dbs
4、查看当前正在使用的数据库
a、db
b、db.getName()
5、断开连接
exit
6、查看命令api
help
二、集合操作
1、查看当前数据库下有哪些集合
show collections
2、创建集合
a、
语法:db.createCollection('集合名')
示例:db.createCollection('class')
b、
语法:db.集合名.insert(document)
示例:db.student.insert({name:'tom',age:18,gender:1,address:"北京",isDelete:0})
区别:两者的区别在于前者创建的是一个空的集合,后者创建一个空的集合并添加一个文档。
3、删除当前数据库中的集合
语法:db.集合名.drop()
示例:db.class.drop()
三、文档操作
1、插入文档
a、使用insert()方法插入文档
语法:db.集合名.insert(文档)
插入一个:db.student.insert({name:"lilei",age:19,gender:1,address:"北京",isDelete:0})
语法:db.集合名.insert([文档1],[文档2],……,[文档n])
插入多个:db.student.insert([{name:"韩梅梅",age:20,gender:1,address:"上海",isDelete:0},
{name:"海妹妹",age:19,gender:1,address:"北京",isDelete:0}])
b、使用save()方法插入文档
语法:db.集合名.save(文档)
说明:如果不指定_id字段,save()方法类似于insert()如果指定_id字段,则会更新_id字段的数据
示例1:db.student.save({name:"poi",age:21,gender:1,address:"北京",isDelete:0})
示例2:db.student.save({_id:object("5afe6842286b72ee15913653"),name:"poi",age:23,gender:1,address:"北京",isDelete:0})
2、文档更新
a、update()方法用于更新已存在的文档
语法:
db.集合名.update(
query,
update,
{
upset:<boolean>
multi:<boolean>
writeConcern:<document>
})
参数说明:
query:update的查询条件,类似于sql里update内的where语句
update:
update的对象和一些更新的操作符($set,$inc)等。$set直接更新,$inc在原有基础上累加后更新。
upset:可选,如果不存在update的记录,是否当新数据插入,true为插入,False为不插入,默认false。
multi:可选,默认false,只更新找到的第一条记录,如果为true,则将查找结果全部更新。
writeConcern:可选,抛出异常的级别。
需求:将lilei的年龄更新到25
实例
db.student.update({name:"lilei"},{$set:{age25:25}})
db.student.update({name:"lilei"},{$inc:{age25:25}})累加
db.student.update({name:"lilei"},{$inc:{age25:25}},{multi:true})全改
b、save()方法通过传入的文档替换已有文档
语法:
db.集合名.save(document,{writeConcern:<document>})
参数说明:
document:文档数据
writeConcern:可选,抛出异常的级别
注意:save基本不用,update常用
3、文档删除
说明:在执行remove()函数前,先执行find()命令来判断执行条件是否存在是一个良好习惯
语法:
db.集合名.remove(
query,
{
justOne:boolean,
writeConcern:<document>
}
)
参数说明:
query:可选,删除文档的条件
justOne:可选,如果为true或1,只删除一个文档
示例:db.student.remove({name:"tom"})
4、文档查询
a、find()方法
语法:db.集合名.find(数据)
查询所有:db.student.find()
b、find()方法查询指定列
语法:db.集合名.find(
query,
{
key:1,
key:2
}
)
参数说明:
query:查询条件
key:显示的字段,1表示显示
示例:
db.student.find({gender:0},{name:1,age:1})
db.student.find({},{name:1,age:1})
c、pretty()方法以格式化的方式来显示文档
示例:db.student.find.pretty()
d、findOne()方法查询匹配结果的第一条数据
示例:db.student.findOne({gender:1})
5、查询条件操作符
作用:条件操作符用于比较两个表达式并从MongoDb集合中获取数据
a、大于 $gt
语法:db.集合.find({<key>:{$gt:<>value}})
示例:db.student.find({age:{$gt:20}})
b、大于等于 $gte
示例:db.student.find({age:{$gte:20}})
c、小于 $lt
示例:db.student.find({age:{$lt:20}})
d、小于等于 $lte
示例:db.student.find({age:{$lte:20}})
e、等于 :
f、使用_id查询
g、查询某个结果集的条数
db.student.find().count()
h、查询某个字段的值是否包含另一值
db.student.find({name:/ile/})
i、查询某个字段的值是否另一个值开头
db.student.find({name:/^li/})
6、条件查询and or
a、and条件
语法:db.集合名.find({条件1,条件2,条件n})
示例:db.student.find({gender:1,age:{$gt:16}}
b、or条件
语法:db.集合名.find
(
{
$or:[{},{},{}]
}
)
示例:db.student.find({$or:[{age:11},{age:{$gt: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(2)
c、limit和skip联合
通常用这种方式来实习分页功能
示例:db.student.find().limit(3).skip(3)
8、排序
语法:db.集合名.find().sort({<key>:1|-1})
示例:db.student.find().sort({age:1})
注意:1表示升序,-1表示降序。