• MongoDB安装+环境配置+常用命令


    是什么?
    MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。
    特点:高性能、易部署、易使用,存储数据非常方便。
    安装+配置
    第一步:安装mongdb
    1.选择custome
    2.修改安装地址 C:MongDB
    3.修改环境变量 找到bin路径 C:MongDBin 配置到全局环境变量
        win10---计算机---属性---高级系统设置---高级---环境变量---系统变量---找到Path---编辑---新建---把路径复制进去
     
    第二步:启动mongo
    1. 进入mongoDB 目录 ,新建 data文件夹 ,用来保存数据
    2. 进入 data文件夹, 在data内新建 db 文件夹 用来保存数据库数据
    3. 命令cmd执行 mongod --dbpath C:MongoDBdatadb
    4. port 27017 浏览器输入 http://localhost:27017/ 成功打开
    5. 新建cmd 输入 mongo 进入mongoDB Shell
     
    第三步:创建 MongoDB 服务 (必须管理器权限)
    1. 切换到 Mongodb 的 data 下,新建一个log 文件夹 ,存储登录日志
    2. 切换到 data 下的 log ,新建 一个文件 mongo.log 存储登录日志
    3. 切换到 C:MongoDB 新建 mongo.config 配置文件,文件内写入:
    dbpath=C:MongoDBdatadb
    logpath=C:MongoDBdatalogmongo.log
    4. 新建cmd 输入 mongod --config C:MongoDBmongo.config (启动mongodb) 测试
    5. 创建 mongodb 服务 mongod --config C:MongoDBmongo.config --install --serviceName "MongoDB" (必须管理员 关闭第四步 )
    6. 启动 mongodb 服务 net start MongoDB
    net stop MongoDB   停止mongdb服务
    SC delete MongoDB 删除MongoDB 服务
    查看 services.msc
     
    常用命令
    一、常用指令
    mongo 进入mongodb Shell
    show dbs 显示所有的数据库
    db 查看当前数据库
    use kuname 创建或者切换数据库
    show tables  查看表
    show collections  查看表
     
    db.stats()显示当前DB状态
    db.version()查看当前DB版本
    db.getMongo()查看当前DB的链接机器地址
    db.dropDatabase()删除数据库
     
    二、MongoDB 增删改查
    (一)插入
    tablename相当于mysql中的table表名,MongoDB中的collection集合
    db.tablename.insert()
    db.tablename.insert({username:"张三"})   添加一条数据
    db.tablename.insert([{username:"张三"},{username:"李四"}])   以数组的形式添加多条数据
    db.tablename.insertOne() obj 只能插入一条数据
    db.tablename.insertMany() array 只能接受数组
    db.tablename.save() 类似 insert

    (二)修改 update
    db.tablename.update(query,object);  query:update的查询条件,类似sql update查询内where后面的。
    db.tablename.update({username:"wh1803"},{$set:{增加的内容}})
    db.tablename.update({username:"张三"},{$set:{password:"abc123"}}    在username为张三的文档后面增添一个passsword为abc123
    db.tablename.update({username:"张三"},{$set:{username:"李四"}}        将username为张三的数据修改为username为李四
    dbtablename.update({},{$set:{password:"abc123"}})                              默认修改第一条数据
    db.tablename.update({username:"cd1706"},{$set:{password:"abc123"}},true);
    能不能查询到 (查不到)
    true 查不到就直接插入
    false 查不到就不插入 默认为false
     
    修改多条数据
    db.tablename.update({},{$set:{password:"abcd12456"}},true,true);
    true 表示修改满足条件的所有数据 updateMany
    false 表示修改满足条件的第一条数据 updateOne 默认false
    db.tablename.updateOne({},{$set:{age:28}});
    db.tablename.updateMany({},{$inc:{age:12}});   $inc对文档的某个值为数字型(只能为满足要求的数字)的键进行增减的操作。这里表示给符合条件的数据的age加12。
     
    (三)删除 deleteOne
    db.tablename.deleteOne({username:"张三"}) 删除一条username为张三的数据
    db.tablename.deleteMany() 删除多条数据
    db.tablename.remove(query) 删除所有满足条件 的 文档
    db.tablename.remove(query,n); 表示删除的数据量 n 只能删除一条数据 第一条数据
    db.tablename.drop(); 删除当前集合 collection(mysql中所谓的表)
     
    (四)查询 find
    db.tablename.find() 查询所有相当于mysql中的 select * from tablename;
    db.tablename.find({query},{field})    query为查询条件
    db.tablename.find({username:"张三"})         查询username为张三的文档
    db.tablename.find({username:"张三"},{username:1,_id:0,password:1})   username为张三的文档,其中的username显示,默认id不显示,password显示
    1 代表显示     0代表不显示
     db.tablename.find({},{username:1})       查询所有数据,只显示其中的username
     
    去重查询
    db.user.distinct("password")
     
    $gt    >
    $gte  >=
    $lt     <
    $lte   <=
    db.tablename.find({age:{$gt:25}})            选出age大于25的所有文档
    db.tablename.find({age:{$gt:20,$lte:30}})      选出age大于20且小于等于30的所有文档
     
    db.user.find({$or:[{username:"张三"},{age:{$lte:40}}]},{_id:0})      将user集合中username为张三,或者age小于等于40的文档,默认id不显示,其余的显示出来
    相当于mysql中的select username ,password,age from user where username = "张三" or age <=40;
     
    模糊查询
    相当于mysql中的like      select * from tablename where username like 'hua%';
    db.tablename.find({username:/^hua/});
    db.tablename.find({username:/^hua$/});
    db.tablename.find({username:/hua4$/});
     
    利用正则
    var txt = search
    new RegExp("+txt+"$")
    new RegExp("hua4$");
    db.tablename.find({username:new RegExp("^hua")});
     
    排序 .sort()
    db.movie.find({},{year:1,title:1,_id:0}).sort({year:1}) 1 表示升序
    db.movie.find({},{year:1,title:1,_id:0}).sort({year:-1}) -1 降序
     
    db.movie.find({},{year:1,title:1,_id:0,"rating.average":1}).sort({year:-1,"rating.average":-1})
    db.movie.find({},{year:1,title:1,_id:0,"rating.average":1}).sort({year:-1,"rating.average":1})
     
    限制条数 limit
    db.movie.find({},{year:1,title:1,_id:0}).limit(10);
     
    跳过 skip
    db.movie.find({},{year:1,title:1,_id:0}).skip(5);
    db.movie.find({},{year:1,title:1,_id:0}).skip(5).limit(10);
    db.movie.find({},{year:1,title:1,_id:0}).limit(10).skip(5);
     
    长度 条数 count 所有集合数据 size 满足条件的集合数据
    db.movie.find({},{year:1,title:1,_id:0}).size();
    db.movie.find({},{year:1,title:1,_id:0}).count()
    db.movie.find({},{year:1,title:1,_id:0}).skip(5).size();
    db.movie.find().skip(5).count()
     
    最大值
    db.movie.find({},{year:1,title:1,_id:0}).max({"rating.average"})
    db.movie.find({},{year:1,title:1,_id:0}).min({"rating.average"})

    and 查询
    db.movie.find({year:"1994","rating.average":9.6},{year:1,title:1,_id:0})
     
    查询第一条数据
    db.movie.findOne({},{year:1,title:1})
    db.movie.find().limit(1);
     
    判断 列 field 是否存在
    db.movie.find({year:{$exists:true}},{year:1,title:1,_id:0})
    db.movie.find({year11:{$exists:true}},{year:1,title:1,_id:0})
     
    $in 包含
    db.movie.find({genres:{$in:["犯罪"]}},{year:1,title:1,genres:1,_id:0})

    $nin 不包含
    db.movie.find({genres:{$nin:["剧情"]}},{year:1,title:1,genres:1,_id:0})
     
  • 相关阅读:
    原生js 实现 map
    前端安全学习
    前端性能优化
    前端的跨域请求方法使用场景及各自的局限性
    7-7 12-24小时制(15 分)
    7-4 BCD解密(10 分)
    7-2 然后是几点(15 分)
    厘米换算英尺英寸
    鸡兔同笼
    数组:经典计数
  • 原文地址:https://www.cnblogs.com/yznotes/p/12676595.html
Copyright © 2020-2023  润新知