启动mongo服务
mongod --dbpath 建立的文件路径(用来存放数据库)
;
启动服务之后 重新打开cmd 输入mongo mongodb
数据库连接;
mongoDB 是一个文档型数据库 存储的是key:value 类似json数据 分布式 高性能的数据库
数据库>集合>文档 _id:ObjectId
mongo 命令行 操作
- 创建数据库
use dataBasename
会去检测数据库是否存在,不存在创建+定位 ,存在直接定位;
显示数据库show dbs
删除数据db.dropDtabase()
- 创建集合
db.createCollection("name",ooptions)
删除集合db.name.drop()
显示集合show collections
3. 文档数据处理
增insert 删delete,remove 改updata 查 find
- 插入文档
db.name.insert({})
把数据定义为变量插入文档txt=({name:"李四",age:19,sex:"男"}); db.user.insert(txt);
- 删除文档
db.name.deleteOne({条件})
db.name.deleteMany({条件})
db.name.remove(条件)
- 修改更新文档
db.update({条件},{更新字段},查找不到时候是否插入,是否默认修改第一条)
更新字段:********************* - 查找文档
db.name.find({条件})
- 文档条件式查找 = gt gte lt lte ne ,and,or
db.user.find({age:18});
db.user.find({age:{$lt:20}});
db.user.find({age:{$lte:20}});
db.user.find({age:{$gt:20}});
db.user.find({age:{$gte:20}});
db.user.find({age:{$ne:20}});
// and条件查找
db.user.find({name:"毛豆",age:{$lt:20}});
// or条件查找
db.user.find({$or:[{name:"毛豆"},{name:"张三"}]});
// and和or连用
db.user.update({age:{$lte:20}},{$set:{name:"张三"}});
- 文档替换
db.user.save({});
里面的数据_id和要替换的数据_id一致 - KaTeX parse error: Expected '}', got 'EOF' at end of input: …er.find({name:{type:“object”}});`
- limit skip 方法 , 数据分页
limit
读取多少条数据skip
跳到某个位置
db.user.find().skip(0).limit(3);
//跳到第0条,读取3条 - 模糊查找
db.user.find({name:/张/});
- 排序 sort() 1 正序 -1 倒序
db.user.find().sort({age:1})
正序
db.user.find().sort({age:-1})
倒序 - mongodb实现自动增长
建立一个辅助的集合 实现增长db.createCollection("count");
给count集合添加数据db.count.insert({_id:"proId",autonum:0});
建立函数 操作count集合里面autonum字段自增
$inc 关键字 实现自增自减操作的
function getNext(idName){
var obj=db.count.findAndModify(
{
query:{_id:idName},
update:{$inc:{autonum:1}},
"new":true
});
return obj.autonum;
};
集合里 _id 自增 db.user.insert({_id:getNext("proId"),name:"张三"});
12. 索引 作用是 提高查询的效率
获取集合里面的索引 db.user.getIndexes();
删除索引 db.user.dropIndex({name:1});
创建索引 db.user.createIndex({name:1})
创建复合索引 db.createIndex({name:1,sex:1});
db.user.ensureIndex({name:1})
13. 聚合
聚合表达式:$sum 总和 $avg 平均数 $min KaTeX parse error: Expected '}', got 'EOF' at end of input: …er.aggregate([{group:{_id:"KaTeX parse error: Expected '}', got 'EOF' at end of input: name",num:{sum:1}}}]);`
14. 管道:
$project 过滤字段
db.user.aggregate({
$project:{name:1,_id:0}
})