MongoDB的常用命令
数据库
-
创建数据库
use DATABASE_NAEM
如果数据库不存在,则创建数据库,否则切换到指定的数据库中
-
查看所有库
show dbs
如果我想要显示它,需要想
runoob
数据库中插入一些数据db.runoob.insert( {"name":"mongodb数据库",} )
注意:
MongoDB
中默认的数据库为test,如果你没有创建新的数据库,集合将会存放在test数据库中
-
删除数据库
db.dropDatabase() 删除当前数据库
可使用
db
命令查看当前数据库名称
集合
类似于mysql中的表格
-
创建集合
语法:
db.createCollection(name,options) 参数说明: name:要创建的集合名称 options:可选参数,指定有关内存大小,和索引的选项
options参数:
-
查看集合
show collections show tables 这两种方式都可查看数据库中的集合
-
删除集合
db.collection.drop() 说明: collection:指的是集合名称 返回值: 如果成功删除集合,则drop()方法返回true,否则返回false
删除
mycol
集合
文档
插入文档
创建/插入操作会将新文档添加到集合中,如果该集合不存在,则插入操作将会创建该集合
-
向集合中插入一条文档数据
db.collection.insertOne( <document>, { writeConcern: <document> } ) 说明: document:要插入集合中的文档 writeConcern:可选;写入策略,默认为1,即要求确认写操作,0是不要求
向runoob中插入一条数据
document={"dep_id":"T23001","dep_name":"信息管理学院","master_name":"艾娥儿","slogan":"hahahh"}
db.runoob.insertOne(document
)
-
向集合中插入多条文档数据
db.collection.insertMany()
document= [{"site":"www.baidu.com"}, {"site":"www.google.com","name":"Google"}, {"site":"www.runoob.com","name":"菜鸟教程","num":5}] db.runoob.insertMany( document )
-
查看集合中的文档
db.runoob.find()
-
更新文档
-
更新一条
db.collection.updateOne({“key1”:“val”},{$set:{“key1”:“val11111”}})
-
更新多条
db.collection.updateMany()
-
替换一条
db.collection.replaceOne()
更新操作符说明
$set {$set:{field:value}} 指定一个键并更新值,若键不存在则创建
$unset {$unset:{field:1}} 删除一个键
$inc {$inc:{field:value}} 对数值类型进行增减
$push {$push:{field:value_arry}} 将数值追加到数组中,若数组不存在则会进行初始化
$pushAll {$pushAll:{field:value_arry}} 追加多个值到一个数组字段内
$pull {$pull:{field:_value}} 从数组中删除指定的元素
$addToSet {$addToSet:{field:value}} 添加元素到数组中,具有排重功能
$pop {$pop:{field:1}} 删除数组的第一个或者最后一个元素
删除文档
删除集合中的文档
# 方法1
db.collection.deleteMany()
# 方法2
db.collection.deleteOne()
删除status等于A的一个文档
删除status等于D的全部文档
查询文档
使用find()
查询文档
find()
方法以非结构化的方式显示所有文档
语法:
db.collection.find(query,projection)
说明:
query:可选,使用查询操作符查询执行的条件
projection:使用投影操作符指定返回的键。查询时返回文档中所有键值, 只需省略该参数即可(默认省略)。
查看inventory中的文档:db.inventory.find()
结构化查询:
pretty()
:以格式化的方式显示所有文档
db.inventory.find().pretty()
逻辑运算符
操作 | 格式 |
---|---|
等于 | {:} |
小于 | {:{$lt:}} |
小于或等于 | {:{$lte:}} |
大于 | {:{$gt:}} |
大于或等于 | {:{$gte:}} |
不等于 | {:{$ne:}} |
# 查询status等于D的数据
db.inventory.find({"status":"D"}).pretty()
等价于:SELECT * FROM inventory WHERE status = "D"
# 查询qty小于75
db.inventory.find({"qty":{$lt:75}}).pretty()
查询qty小于等于75
db.inventory.find({"qty":{$lte:75}}).pretty()
查询qty大于75
db.inventory.find({"qty":{gt:75}}).pretty()
查询qty小于等于75
db.inventory.find({"qty":{$gte:75}}).pretty()
查询qty不等于75
db.inventory.find({"qty":{$ne:75}}).pretty()
条件运算
AND
db.collection.find({key1:value1,key2:value2}).pretty()
查看status为A,且item是“journal’'的数据
db.inventory.find({"status":"A","item":"journal"})
OR
使用关键字$or
语法:
db.collection.find(
{
$or:[
{key1:value1},{key2:value2}
]
}
)
查询status为D或者item为journal的数据
db.inventory.find( {$or:[ {"status":"D"}, {"item":"journal"} ] }).pretty()
AND和OR的使用
类似于where qty<=75 and (status="D"OR item="journal")
查询status为D或者item为journal,且qty<=75的数据
db.inventory.find( {"qty":{$lte:75},
$or:[ {"status":"D"}, {"item":"journal"} ] }).pretty()
limit()和skip()
- limit()方法
limit()方法指从MongoDB中读取指定数量的数据记录
语法:
db.collection.find().limit(number)
说明:
number:指定从MongoDB中读取记录的条数
比如:
db.inventory.find().limit(2)
#读取两条
- skip()方法
skip()方法来跳过指定数量的数据
语法:
db.collection.find().limit(number).skip(number)
说明:
number:跳过的记录条数
排序
在mongoDB中使用sort()
对数据排序;其中使用1和-1来指定排序的方式。
1:升序
-1:降序
语法:
db.collection_name.find().sort({key:1})
比如:按qty升序显示
聚合
主要用于处理数据(例如:统计平均值,求和等),并返回计算后的数结构
类似于SQL语句中的count(*)
aggregate()方法
语法:
db.collection_name.aggregate()
聚合这里存在疑问?