- MongoDB基本操作
- 创建数据库:
use 数据库名
: 如果数据库不存在,就创建,否则切换到数据库,对于刚刚创建的数据库,可能不在列表中进行显示,如果需要显示,需要插入一些数据; - 查看数据库:
show dbs
* 查看当前正在使用的数据库: dbs或者db.getName
* 断开连接:exit
* 查看命令帮助:help
* 删除数据库: db.dropDatabase()
前提是使用当前数据库
* 集合操作:
* 查看当前数据库下有哪些数据库集合
* show collections
* 创建集合
语法: db.createCollection("set name")
db.集合名.insert(document)
- 前面的创建一个空的集合,后者表示的是创建一个空的集合并且添加文档
- 例如:
db.student.insert({name:"tom", age:18, gender:1, address:"lala", isDelete:0})
- 前面的创建一个空的集合,后者表示的是创建一个空的集合并且添加文档
- 删除当前数据库中的集合
db.集合名.drop()
- 文档操作:
- 插入文档:
db.集合名.insert(文档)
db.student.insert([{name:"to", age:18, gender:1, address:"lala", isDelete:0},{ame:"too", age:18, gender:1, address:"lala", isDelete:0}])
- 使用
save
方法插入文档
db.集合名.save(文档)
如果不指定_id字段,save方法类似于insert()方法,如果指定_id字段就会
更新_id字段的数据
db.student.insert({name:"tom", age:18, gender:1,address:"lala", isDelete:0})
- 文档更新:
- a.
update()
方法用于更新已经存在的文档;
a. update()方法用于更新已经存在的文档;
db.集合名.udates(
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
,就更新找到的所有数据;WriteConncern
:表示抛出异常的级别- 例如:
> db.student.update({name:"tom"},{$set:{age:25}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified":1 })
> db.student.update({name:"tom"},{$inc:{age:25}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified":1 })
> db.student.update({name:"tom"},{$set:{age:25}},{multi:true})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
b. save()
: 是通过传入的文档替换已经存在的文档;
db.集合名.save(
document,
{
writeConcern:<document>
}
) document:表示文档对象
writeConcern:可选,表示抛出异常的级别
* `document:`表示文档对象
* `writeConcern`:可选,表示抛出异常的级别;
* 文档删除:
* 在执行remove()函数前,限制性find()命令来判断执行的条件是否存在是一个良好的习惯
db.集合名.remove(
query,
{
justOne:<boolean>
writeConcern:<document>
}
)
query
:可选,表示删除文档的条件justOne
:可选,如果为True
或者1
,则只删除一个文档;writeConcern
:可选,表示抛出异常的级别;
db.student.remove({name:"tom"})
- 文档查询
-
find()
方法:表示查询集合下所有的文档(数据)
db.student.find()
* 2. find()
查询指定列
语法:db.集合名.find(
query,
{
<key>:1,
<key>:1
}
)
query
表示查询条件;key
表示要显示的字段,1
表示的是显示;如果查询条件为空,表示所有的都进行查询;- 查看所有的名字和年龄:
pretty()
方法通过格式化的方式来显示文档,例如:
findOne()
用于查询匹配结果的第一条数据
- 查询条件操作符号
- 作用:条件操作符用于比较两个表达式病从
MongoDB
集合中获取数据
$gt
:表示大于:db.集合名.find({key}:{$gt:<value>}})
$gte
:表示大于等于
$lt
:表示小于
$lte
:表示小于等于
$gte 和 $lte
联合使用
:
表示等于
_id
进行查询用于查询某个结果集的数据条数
- 查询某个字段的值当中是否包含另一个值;
- 查询某个字段的值是否以另一个值开头;
- 条件查询的逻辑关系
and or
AND
条件:
OR
条件:
AND 和 OR
联合使用:
db.集合名.find(
{
条件1,
条件2,
$or:[{条件3},{条件4}]
}
)
limit()
表示读取指令数量的数据记录
skip()
:表示跳过的一定数量的数据
- 排序:
db.集合名.find().sort({<key>:1|-1}) //表示进行生序和将序排列