MongoDB的安装

下载

在http://dl.mongodb.org/dl/win32/x86_64下载一个合适的版本,我选择了可以被Navicat Premium 15连接,文件又最小的3.3.6。

可以看到仅200MB。下载地址是http://downloads.mongodb.org/win32/mongodb-win32-x86_64-3.3.6.zip

当然你也可以选择其他的版本。

解压

下载完成后,我们将其解压到自己喜欢的位置,例如D:\develop。

然后我将mongodb-win32-x86_64-3.3.6重命名为mongodb:

配置文件

解压后,我们通过配置文件,指定mongoDB将数据和日志存放位置。

创建文件mongo.config内容如下(我放在了mongoDB的解压位置):

dbpath=D:\develop\mongodb\data\db
logpath=D:\develop\mongodb\data\log\mongo.log

根据配置文件,手工创建相应的目录和子目录(不需要创建文件):

D:\develop\mongodb>tree data
卷 软件 的文件夹 PATH 列表
卷序列号为 0F12-100A
D:\DEVELOP\MONGODB\DATA
├─db
└─log

安装服务

进入bin目录打开cmd,执行以下命令:

mongod --config D:\develop\mongodb\mongo.config --install --serviceName mongodb

打印内容:

D:\develop\mongodb\bin>mongod --config D:\develop\mongodb\mongo.config --install --serviceName mongodb
2021-02-25T09:53:43.974+0800 I CONTROL  [main] Hotfix KB2731284 or later update is not installed, will zero-out data files

启动/关闭mongoDB

以上操作后,也不需要将mongodb加入环境变量,以后直接通过服务启动即可,命令如下:

net start mongodb

关闭mongoDB:

net stop mongodb

删除服务

前面我们注册的服务名称是mongodb,以后想删除服务只需执行以下命令即可:

sc delete mongodb -remove

配置文件详解

MongoDB的配置文件详解:

# 端口号,默认27017
#port=27017# 数据库文件位置
dbpath=D:\develop\mongodb\data\db#日志文件位置
logpath=D:\develop\mongodb\data\log\mongo.log# 是否追加方式写入日志,默认True
logappend=true# 设置绑定ip
bind_ip = 127.0.0.1
# 设置端口
port = 27017# 是否以守护进程方式运行,默认false
fork = true#这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为false
quiet=false# 启用日志文件,默认启用
journal=true# 启用定期记录CPU利用率和 I/O 等待,默认false
#cpu = true# 是否以安全认证方式运行,默认是不认证的非安全方式
#noauth = true
#auth = true# 详细记录输出,默认false
#verbose = true#用于开发驱动程序时验证客户端请求
#objcheck = true# # 启用数据库配额管理,默认false
#quota = true# 设置oplog日志记录等级,默认0
#   0=off (default)
#   1=W
#   2=R
#   3=both
#   7=W+some reads
#oplog = 0# 是否打开动态调试项,默认false
#nocursors = true# 忽略查询提示,默认false
#nohints = true# 禁用http界面,默认为localhost:28017
#nohttpinterface = true# 关闭服务器端脚本,这将极大的限制功能,默认false
#noscripting = true# 关闭扫描表,任何查询将会是扫描失败
#notablescan = true# 关闭数据文件预分配
#noprealloc = true# 为新数据库指定.ns文件的大小,单位:MB
# nssize = <size># 用于Mongo监控服务器的Accout token。
#mms-token = <token># Mongo监控服务器的服务器名称。
#mms-name = <server-name># Mongo监控服务器的Ping间隔时间,即心跳
#mms-interval = <seconds># Replication Options# 设置主从复制参数
#slave = true # 设置从节点
#source = master.example.com # 指定从节点的主节点
# Slave only: 指定要复制的单个数据库
#only = master.example.com
# or
#master = true # 设置主节点
#source = slave.example.com # 设置副本集的名字,所有的实例指定相同的名字属于一个副本集
replSet = name#pairwith = <server:port># 仲裁服务器地址
#arbiter = <server:port># 默认为false,用于从实例设置。是否自动重新同步
#autoresync = true# 指定的复制操作日志(OPLOG)的最大大小
#oplogSize = <MB># 限制复制操作的内存使用
#opIdMem = <bytes># 设置ssl认证
# Enable SSL on normal ports
#sslOnNormalPorts = true# SSL Key file and password
#sslPEMKeyFile = /etc/ssl/mongodb.pem
#sslPEMKeyPassword = pass# path to a key file storing authentication info for connections
# between replica set members
#指定存储身份验证信息的密钥文件的路径
#keyFile=/path/to/keyfile

测试数据生成

创建js脚本,例如文件名为GenerateMongoTestData.js

//生成随机手机号
function getRandPhone(){var heads = ["134","138","139","150","151","152","157","158","159","170","189"];var phone = heads[Math.floor(Math.random()*heads.length)];var numbers = [1,2,3,4,5,6,7,8,9];for(var i=0; i<8; i++){phone+=numbers[Math.floor(Math.random()*numbers.length)];}return phone;
}//生成车牌号
function getRandPlate(){//地区,用于生成车牌号// var loc = ["川","渝","贵","陕","京","沪","粤","津","赣","湘","鄂"];var loc = ["川","渝"];//字母,用于生成车牌号var chars = ["A","B","C","D"];//数字,用于生成车牌号var numbers = [1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,"J","K","L","M"];var plate = "";plate += loc[Math.floor(Math.random()*loc.length)]; //第一位地区简称plate += chars[Math.floor(Math.random()*chars.length)]; //第二位字母简称//4位数字for(var i=0; i<4; i++){plate+=numbers[Math.floor(Math.random()*numbers.length)];}return plate;
}
// print(getRandPlate())//生成名字
function getRandName(){var familyNames = ["赵",  "钱",  "孙",  "李",  "周",  "吴",  "郑",  "王",  "冯",  "陈",  "褚",  "卫",  "蒋",  "沈",  "韩",  "杨",  "朱",  "秦",  "尤",  "许","何",  "吕",  "施",  "张",  "孔",  "曹",  "严",  "华",  "金",  "魏",  "陶",  "姜",  "戚",  "谢",  "邹",  "喻",  "柏",  "水",  "窦",  "章","云",  "苏",  "潘",  "葛",  "奚",  "范",  "彭",  "郎",  "鲁",  "韦",  "昌",  "马",  "苗",  "凤",  "花",  "方",  "俞",  "任",  "袁",  "柳","刘",  "鲍",  "史",  "唐",  "费",  "廉",  "岑",  "薛",  "雷",  "贺",  "倪",  "汤",  "滕",  "殷",  "罗",  "毕",  "郝",  "邬",  "安",  "常","乐",  "于",  "时",  "傅",  "皮",  "卞",  "齐",  "董",  "伍",  "余",  "元",  "卜",  "顾",  "孟",  "平",  "黄",  "和",  "谭",  "萧",  "尹"];var givenNames = ["子璇", "淼", "国栋", "夫子", "瑞堂", "甜", "敏", "尚", "国贤", "贺祥", "晨涛", "昊轩", "易轩", "益辰", "益帆", "益冉", "瑾春", "瑾昆", "春齐", "杨", "文昊", "东东", "雄霖", "浩晨", "熙涵", "溶溶", "冰枫", "欣欣", "宜豪", "欣慧", "建政", "美欣", "淑慧", "文轩", "文杰", "欣源", "忠林", "榕润", "欣汝", "慧嘉", "新建", "建林", "亦菲", "林", "冰洁", "佳欣", "涵涵", "禹辰", "淳美", "泽惠", "伟洋", "涵越", "润丽", "翔", "淑华", "晶莹", "凌晶", "苒溪", "雨涵", "嘉怡", "佳毅", "子辰", "佳琪", "紫轩", "瑞辰", "昕蕊", "萌", "明远", "欣宜", "泽远", "欣怡", "佳怡", "佳惠", "晨茜", "晨璐", "运昊", "汝鑫", "淑君", "晶滢", "润莎", "榕汕", "佳钰", "佳玉", "晓庆", "一鸣", "语晨", "添池", "添昊", "雨泽", "雅晗", "雅涵", "清妍", "诗悦", "嘉乐", "晨涵", "天赫", "玥傲", "佳昊", "天昊", "萌萌", "若萌","泽民", "国强", "胜利", "小凡", "碧瑶", "书书", "京雨", "卫东", "小佳", "长江","文虹", "义凡", "广晨", "宸滔", "嘉岐", "雅珺", "睿明", "皓轩", "程天", "子酝", "艾康", "如羽", "冠玉", "子歉", "永昊", "龙华", "兆颜", "奇文", "月昕", "裕锦", "昂佳", "昊浩", "宇韬", "睿焓", "永译", "鸿彬", "颢霖", "益彬", "虹昊", "飞悦", "睿珏","?宵童", "睿鸿", "容冰", "逸濠", "楷岩", "弘义", "海萦", "昊孺", "梓铭", "生钊", "蓝玺", "晨辕", "宇菡", "砚海", "文揩", "韬瑞", "彦红", "奕韦", "清予", "宁翼", "冬睿", "锦昌", "烨宁", "昌权", "国研", "德运", "孝清", "佳阳", "凯玮", "正真", "民云", "昕冶", "力威", "帅欣", "知淳", "烨飞", "兴远", "子墨", "澄欣", "烨煊", "悦勤", "晨津", "博宏", "育萌", "羽炫", "绍钧", "睿昌", "泓千", "颢炜", "虹金", "筠航", "元甲", "星明", "景涛", "铭虹", "德本", "向辉", "基翔", "家易", "欣鹏", "羽荃", "泽容", "弘亮", "尚廷", "轩梓", "甫津", "彬楷", "寅飞", "愉君", "阳平", "誉杰", "钦昭", "蕴藉", "羽程", "宏海", "涵畅", "光浩", "令沂", "浩浩", "睿锦", "易泽", "俊康", "家文", "晨元", "语洋", "裕宏", "梓榛", "阳嘉", "恒展", "雨远", "哲伊", "逸江", "丰源", "学东", "奇岩", "浩财", "和蔼", "红言", "瑞赫", "森圆", "欣赢", "梓鸿", "博明", "铭育", "颢硕", "宇烯", "宇如", "淳炎", "源承"];var name = familyNames[Math.floor(Math.random()*familyNames.length)];name+=givenNames[Math.floor(Math.random()*givenNames.length)];return name;
}
// print(getRandName())// 生成随机专业
function getRandMajor() {return ["大数据", "应用数学", "应用统计"][Math.floor(Math.random()*3)]}
// print(getRandMajor())// 随机取一门课程
function getRandCourse() {var courses = ["大数据概论", "大数据开发语言", "Hadoop大数据技术", "分布式数据库原理与应用", "网络操作系统", "结构化数据存储与应用", "数据导入与预处理应用", "数据可视化技术", "数据仓库与挖掘技术", "时间序列分析实践", "大数据分析与内存计算"];var credits = [2, 4, 4, 4, 2, 2, 4, 2, 4, 4, 4];var idx = Math.floor(Math.random()*courses.length);var course = [courses[idx],credits[idx]];return course;
}// 生成学生数据
function generateStudents(snum=100, sgrade=2020, overwrite=true, sharding=true) {db = db.getSiblingDB("cqust");if (sharding) {sh.enableSharding("cqust");}if (overwrite) {db.getCollection("students").drop();if (sharding)sh.shardCollection("cqust.students",{"sno":"hashed"});}for(var i=0; i<snum/100; i++){var StudentsDoc = new Array();for(var j=0; j<100; j++){var sid = sgrade*1e6+i*100+j;var sname = getRandName();var gender = Math.floor(Math.random()*2);var phone = getRandPhone();var plate = getRandPlate();var major = getRandMajor();var height = Math.floor(Math.random()*30+gender*5+150);var sclass = Math.floor(Math.random()*4+1);var courses = new Array();for(var k=0; k<Math.floor(Math.random()*5);k++){var course_credit = getRandCourse();courses[k] = {"course":course_credit[0], "credit":course_credit[1], "score":Math.floor(Math.random()*50)+50};}StudentsDoc[j] = {"name":sname, "gender":gender, "height":height, "phone":phone, "role":"student", "sno":sid, "major": major,"grade": sgrade, "class": sclass, "courses":courses};}db.getCollection("students").insertMany(StudentsDoc);}
}// 主程序从这里开始
generateStudents(10000,2015,false,false);
generateStudents(10000,2016,false,false);
generateStudents(10000,2017,false,false);
generateStudents(10000,2018,false,false);
generateStudents(10000,2019,false,false);

执行脚本:

D:\develop\mongodb\bin>mongo ../GenerateMongoTestData.js
2021-02-25T10:14:43.410+0800 I CONTROL  [main] Hotfix KB2731284 or later update is not installed, will zero-out data files
MongoDB shell version: 3.3.6
connecting to: testD:\develop\mongodb\bin>

通过Navicat Premium 15可以查看到插入的测试数据:

MongoDB的安装相关推荐

  1. mongodb的安装及主从复制

    mongodb的安装及主从复制 转载http://linuxme.blog.51cto.com/1850814/965184 一.mongodb安装 1.下载mongodblinux版本(注意32位和 ...

  2. 手把手教你 MongoDB 的安装与详细使用(二)

    上一篇文章练习了,MongoDB 的以下操作 安装 MongoDB 服务 连接 MongoDB MongoDB 创建数据库 MongoDB 删除数据库 MongoDB 插入文档 MongoDB 删除文 ...

  3. mongodb php linux,mongodb 及PHP的MongoDB 扩展安装

    Install MongoDB https://www.mongodb.org/downloads 第一种 通用二进制包安装 curl -O https://fastdl.mongodb.org/li ...

  4. MongoDB的安装及基本命令和pymongo的使用

    Mac中MongoDB的安装以及基本命令和pymongo的使用 一. NoSQL简介 1.NoSQL介绍 NoSQL全名为Not Only SQL, 指的是非关系型数据库, 在现代的计算系统上每天网络 ...

  5. Windows下MongoDB的安装与设置MongoDB服务

    Mongo DB 是目前在IT行业非常流行的一种非关系型数据库(NoSql),其灵活的数据存储方式备受当前IT从业人员的青睐.Mongo DB很好的实现了面向对象的思想(OO思想),在Mongo DB ...

  6. mac下MongoDB数据库安装

    MongoDB数据库安装 下载安装 https://www.mongodb.com/ 打开官网,找到适合自己平台的包,下载解压即可 解压安装后,需要创建一个空的文件夹,用来存放数据,(我在bin的同级 ...

  7. Mongodb的安装部署

    Mongodb的安装部署 一.环境介绍 二.配置mongodb的yum源 三.安装mongodb 三.启动mongodb 1.mongodb启动 2.查看mongodb的状态 3.查看监听端口 四.进 ...

  8. Mongodb学习(安装篇): 在centos下的安装

    安装篇 ###下载解压文件 [root@192 lamp]# wget http://fastdl.mongodb.org/linux/mongodb-linux-i686- 2.2.2.tgz ## ...

  9. Linux下MongoDB的安装,通过配置文件启动Mongodb的方式研究,mongodb自启动脚本(Linux),Windows下安装MongoDB服务,集群部署,数据导出和恢复

    关于MongoDB的windows的 安装,可以参考: http://www.runoob.com/mongodb/mongodb-window-install.html 关于Linux的安装可以参考 ...

  10. 1.非关系型数据库(Nosql)之mongodb:mongodb的安装,环境变量配置,数据库服务端启动,客户端启动

     1.MongoDB官方网站上下载MongoDB的安装版本.截图如下: 2 安装64位版本的mongodb.将它解压到: E:\Installed\mongodb-win32-x86_64-2.6 ...

最新文章

  1. HOG和SIFT图像特征提取简述
  2. 替换软连接导致的问题
  3. vue2.0通过Axios导出excel文件(解决乱码问题)
  4. Java基础巩固——反射
  5. collections模块介绍
  6. Android开源项目:GifView——Android显示GIF动画
  7. OpenCV人脸检测
  8. c++ 怎样连接两个链表_LeetCode | 链表的入口,一文帮你搞定“环形链表”(python版,最简单解析)...
  9. 邓总的vim配置,需要的自己拿走~
  10. Koa v2.x 中文文档 上下文(Context)
  11. 种草电商系统种草电商系统开发解决方案
  12. 电脑一直跳出 不支持16位的应用程序该如何解决
  13. processing交互应用——双人对战游戏
  14. linux 1.0 如何运行,观点|Linux 1.0 之旅:回顾这一切的开始
  15. 微信小程序---授权保存图片或视频,拒绝后不在出现弹窗---自定义组件弹窗
  16. ArcEngine10 ecp 授权
  17. MEM最全汇总及分析
  18. quick-cocos2dx中 B.super.ctor(self) 和 B.super:ctor()的区别
  19. docker多容器操作与强制删除容器的方法步骤
  20. 数据库设计之冗余、索引以及查询优化

热门文章

  1. 如何开发直播平台,直播平台搭建的重要事项
  2. 研磨设计模式-设计模式的基础-设计模式有什么
  3. kettle将excel导入数据库_Kettle从excel导入数据到sql server
  4. 海康威视Java SDK实战
  5. Wke阅读日记1--简介
  6. sha1算法源码c版
  7. 工具 | Virtual GPS使用实践说明
  8. 谷歌浏览器 Chrome 最新版离线安装包下载地址
  9. 浙大 博士 计算机视觉,95后浙大博士生开发全新视图合成系统Neural Body,稀疏视角输入即可合成360°人体视图|专访...
  10. 堆排序(java完整代码)