安装mongodb
官网下载安装包
启动mongodb
新cmd窗口输入 mongo 命令
mongodb基本命令
shou dbs
db
use 数据库名称
show collections
use 表名称
db.表名.find()
db.表名.find({
"age": "13"
})
db.dropDatabase();
db.表名.drop()
查看全部数据库
shou dbs
切换到指定的数据库,如果没有会新建数据库
use 数据库名
查看当前操作的数据库
db
显示当前数据库的所有集合(表)
show collections
删除当前数据库
db.dropDatabase();
切换到表
use 表名称
删除集合,删除指定的集合 删除表
db.表名.drop()
创建表 / 增加数据
db.表名.insert({
"name": "xiaoming"
});
db.表名.insert([{
"id": "1",
"name": "小红"
}, {
"id": "2",
"name": "小明"
}, {
"id": "3",
"name": "小刚"
}, {
"id": "4",
"name": "小亮"
}]);
查
db.表名.find()
db.表名.find().count()
db.表名.find({
"name": "shuaizi"
})
db.表名.find({
age: {
$gt: 22
}
})
db.表名.find({
age: {
$lt: 22
}
})
db.表名.find({
age: {
$gte: 22
}
})
db.表名.find {
age: {
$lte: 22
}
}
db.表名.find(({
age: {
$gte: 18,
$lte: 30
}
}))
db.表名.find(({
age: /包含/
}))
db.表名.find(({
age: /^包含/
}))
db.表名.find(({
age: /包含$/
}))
db.表名.find(({}, {
age: 1,
name: 1
}))
db.表名.find().limit(5)
db.表名.find().skip(10)
db.表名.find().limit(10).skip(5)
limit((page - 1) * 数量)
skip(数量)
db.user.find().sort({
age: 1
})
db.user.find().sort({
age: -1
})
db.表名.find({
$or: [{
age: 12
}, {
age: 20
}]
})
db.表名.findOne()
修改数据
db.表名.update({
name: '帅子'
}, {
$set: {
name: '帅子'
}
})
db.表名.update({
name: '帅子'
}, {
$set: {
name: '帅子'
}
}, {
multi: true
})
删除数据
db.表名.remove({
age: 21
})
db.表名.remove({
age: 21
}, {
justOne: true
})
索引
db.表名.ensurelndex({
"列名": 1
})
db.表名.getIndexes({})
db.表名.dropIndex({
"列名": 1
})
复合索引
db.表名.ensurelndex({
"列名1": 1,
"列名2": 1
})
唯一索引
db.表名.ensurelndex({
"列名1": 1
}, {
'unique': true
})
mongodb聚合管道 / 连表查询|数据统计
db.表名.aggregate([{
$project: {
"列名1": 1,
"列名2": 1
}
}])
db.表名.aggregate([{
$project: {
"列名1": 1,
"列名2": 1
},
$match: {
age: {
$get: 30
}
}
}])
db.表名.aggregate([{
$group: {
_id: "列名",
total: {
$sum: "$列名"
}
},
}])
db.表名.aggregate([{
$project: {
"列名1": 1,
"列名2": 1
},
$match: {
'列名': {
$get: 30
}
},
$sort: {
'列名': 1
}
}])
db.表名.aggregate([{
$project: {
"列名1": 1,
"列名2": 1
},
$match: {
'列名': {
$get: 30
}
},
$sort: {
'列名': 1
},
$limit: 10
}])
db.表名.aggregate([{
$project: {
"列名1": 1,
"列名2": 1
},
$match: {
'列名': {
$get: 30
}
},
$sort: {
'列名': 1
},
$skip: 10
}])
db.表名.aggregate([{
$lookup {
from: '被关联的表',
localField: '主表要挂关联的字段',
foreignField: '被关联表的字段',
as: '关联后存放的字段'
},
{
}
}])