MongoDB
安装 mongod --dbpath "D:\Program Files\MongoDB\Server\4.0\data" --logpath "D:\Program Files\MongoDB\Server\4.0\log\mongod.log" --install --serviceName "MongoDB"
卸载mongod.exe --remove --serviceName "MongoDB"
什么是MongoDB?
MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。
MongoDB - 数据库
一个MongoDB中可以建立多个数据库
MongoDB的单个实例可以容纳多个独立的数据库,每一个都有自己的集合和权限,不同的数据库也放置在不同的文件夹中。
MongoDB - 文档
文档是一组 键值对。
MongoDB 的文档不需要设置相同的字段,并且相同的字段不需要相同的数据类型,这与关系数据库有很大的区别,也是MongoDB 非常突出的特点。
例如:{"genres":["犯罪","剧情"],"title":"肖申克的救赎"}
MongoDB - 集合
集合就是MongoDB的文档集合,类似于关系数据库中的表格
集合存在于数据库中,集合没有固定的结构,可以在集合中插入不同格式和类型的数据,但通常情况下我们插入集合的数据都会有一点的关联性
多个文档的组合就是集合
{"genres": ["犯罪", "剧情"], "title": "肖申克的救赎"}
{"genres": ["搞笑", "无聊"], "title": "李茶的姑妈"}
{"genres": ["好看"], "title": "无双", "stars": 9}
MongoDB - 常用命令
创建命令
use [数据库名称]
显示所有数据库
show dbs
查看当前所处数据库
db / db.getName()
显示当前DB状态
db.stats()
MongoDB - 数据库常用命令
查看当前DB版本
db.version()
查看当前DB的链接机器地址
db.getMongo()
删除当前数据库
db.dropDatabase()
MongoDB - 集合常用命令
创建集合 capped 上限
db.createCollection('collName',{capped : true,size:20,max:100})
db.collName.isCapped(); //判断集合是否为定容量集合
得到指定名称的集合
db.getCollection(name);
得到当前db的所有集合
db.getCollectionNames();
显示当前db所有集合的状态
db.printCollectionStats();
添加
如果没有集合作添加操作,会创建一个集合
save
insert //
insertOne //添加一条
insertMany //添加多条
例:db.users.save({name:'张三',age:16});
db.users.insetOne({name:'张三',age:18});
db.users.insertMany([{name:'李四',age:19},{name:'王五',age:20}])
修改
$set 设置 $inc 加
save
//当传入_id时,save作为更新操作,当没有传入时,作添加操作
update
语法:
db.collection.update(
<query>,
<update>,
{
upsert:
multi:
}
)
//query: update的查询条件,类似sql update查询内where后面的
//update: update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的
//upsert: 可选,如果有query,则修改数据,如果没有query,直接插入这条数据。是否插入一条记录,默认为false
//multi: 可选,是否更新多条记录,默认false
updateOne
updateMany
例:
db.users.update({age: 25}, {$set: {name: 'changeName'}});
// update users set name = 'changeName' where age = 25;
db.users.update({name: 'lisi'}, {$inc: {age: 50}});
// update users set age = age + 50 where name = 'lisi';
db.users.update({name: 'lisi'}, {$inc: {age: 50}, $set: {name: 'hoho'}});
// update users set age = age + 50, name = 'hoho' where name = 'lisi';
删除
remove
语法:
db.collection.remove(
<query>,
{
justOne:<boolean> //true或fals
}
)
//query:条件
//justOne:是否只删除一条,默认false
deleteOne //删除一条
deleteMany //删除多条
**查询修改删除(多功能语句)**
db.users.findAndModify({
query:{age:{$gte:25}},
sort:{age:-1},
update:{$set:{name:'a2'},$inc:{age:2}},
remove:true
})
MongoDB - 集合常用命令
查询所有记录
db.user.find()
查询age = 22的记录
db.user.find({'age':22});
查询 age > 22 的记录 $gt >
db.users.find({'age':{$gt:22}});
查询 age < 22 的记录 $lt <
db.users.find({'age':{$lt:22}});
查询 age >= 22 的记录 $gte >=
db.users.find({'age':{$gte:22}});
查询 age <= 22 的记录 $lte <=
db.users.find({'age':{$lte:22}});
查询 age != 22 的记录 $ne !=
db.users.find({'age':{$ne:22}});
查询 age >= 22 并且 age <=26
db.users.find({'age':{$gte:22, $lte:26}});
查询 age >=23 或者 name == '张三'
db.user.find({$or:[{age:{$gte:23}}, {name:'张三'}]);
查询 name 中包含 mongo 的数据
db.users.find({'name':/mongo/});
查询 name 中以 mongo 开头的数据
db.users.find({'name':/^mongo/});
查询 指定列 name、age 的数据
db.users.find({},{name:1,age:1});
查询 指定列 name age 并且 age > 25
db.users.find(age:{$gt:25},{name:1,age:1});
排序 sort
升序
db.users.find().sort({age:1});
倒序
db.users.find().sort({age:-1});
查询 name = 张三 , age = 20 的数据
db.users.find({name:'张三'},age:20)
查询前5条数据 limit 限定
db.users.find().limit(5);
查询 10条以后的数据 skip 跳过/忽略
db.users.find().skip(10);
查询 在 5-10 之间的数据
db.users.find().limit(10).skip(5);
查询 第一条数据
db.users.findOne();
查询 某个结果集的记录条数
db.users.find().count();
网友评论