下载地址
http://dl.mongodb.org/dl/win32/x86_64
这里用的版本是
mongodb-win32-x86_64-v3.4-latest-signed.msi 同时下载 mongodb-compass 下载地址
https://www.mongodb.com/products/compass
这里用到版本是
mongodb-compass-1.12.4-win32-x64.exe
mongodb-compass安装一路next,直至安装完成 MongoDB安装,选择Custom
安装目录选择
D:\ApacheServer\MongoDB 安装完成后
要手动创建数据目录
在安装目录下创建data文件夹,这里是
D:\ApacheServer\MongoDB\data 进入到安装目录
d:
cd ApacheServer/MongoDB/bin 启动MongoDB有两种方法
第一种直接在命令行中启动,如下
运行 MongoDB 并关联数据目录,执行成功后显示一长串信息
mongod --dbpath D:\ApacheServer\MongoDB\data 第二种办法将MongoDB注册到服务中,在命令行中使用 net start MongoDB 或 net stop MongoDB 即可控制启动停止服务
在 D:\ApacheServer\MongoDB 下创建文件mongod.cfg
并在其中设置内容
//===============================以下代码为mongod.cfg文件中内容==========================================
systemLog:
destination: file
path: D:\ApacheServer\MongoDB\mongod.log
storage:
dbPath: D:\ApacheServer\MongoDB\data
//===============================以上代码为mongod.cfg文件中内容========================================== 然后在命令行中输入
mongod.exe --config "D:\ApacheServer\MongoDB\mongod.cfg" --install 启用MongoDB
net start MongoDB 如需要移除MongoDB服务执行
mongod.exe --remove 启动MongoDB后即可打开MongoDB Compass
输入localhost,端口号默认27017即可,刚创建的MongoDB没有用户名密码 MongoDB 里一维数组(文档)都是要指定属于哪个表(集合)的,一个一维数组就是一条表数据,而数组里的键值(字段名)可随意添加删减,相当于所属表就自动添加删除该字段
当该表下所有的数组都删除了某字段,则相当该表也没了该字段
MongoDB在表里添加一条新数组(文档)时,会自动在数组中添加 _id 字段并设置为主键
MongoDB 的文档不需要设置相同的字段,并且相同的字段不需要相同的数据类型,这与关系型数据库有很大的区别,也是 MongoDB 非常突出的特点。
需要注意的是:
1.文档中的键/值对是有序的。
2.文档中的值不仅可以是在双引号里面的字符串,还可以是其他几种数据类型(甚至可以是整个嵌入的文档)。
3.MongoDB区分类型和大小写。
4.MongoDB的文档不能有重复的键。
5.文档的键是字符串。除了少数例外情况,键可以使用任意UTF-8字符。 MongoDB Shell是MongoDB自带的交互式Javascript shell,用来对MongoDB进行操作和管理的交互式环境。
如果需要进入MongoDB Shell后台管理,需要先打开mongodb装目录的下的bin目录,然后执行mongo.exe文件,这里是
D:\ApacheServer\MongoDB\bin\mongo.exe
鼠标双击打开即可
进入mongoDB后台后,会默认链接到 test 数据库: 在 MongoDB Shell 中直接输入 db 回车,查看当前操作的数据库
db
显示
test show dbs 命令可以显示所有数据的列表,输入
show dbs
显示
admin 0.000GB
local 0.000GB
test 0.000GB use 数据库名 : 如果数据库不存在,则创建数据库,否则切换到指定数据库。刚创建的库用 show dbs 查看不会显示,需要往库中插入数据后才显示
有一些数据库名是保留的,可以直接访问这些有特殊作用的数据库。
admin : 从权限的角度来看,这是"root"数据库。要是将一个用户添加到这个数据库,这个用户自动继承所有数据库的权限。一些特定的服务器端命令也只能从这个数据库运行,比如列出所有的数据库或者关闭服务器。
local : 这个数据永远不会被复制,可以用来存储限于本地单台服务器的任意集合
config : 当Mongo用于分片设置时,config数据库在内部使用,用于保存分片的相关信息。
输入
use local
显示
switched to db local 删除当前数据库,删除后用db查看当前数据库名不变,但是输入show dbs显示的数据库列表中已没有当前库
db.dropDatabase() 查看当前库的集合(数据表)列表
show tables

show collections 创建集合(表)
MongoDB 中,其实不需要创建集合。当向某个新集合插入文档时,如果该集合不存在 MongoDB 会自动创建集合
创建集合语法
db.createCollection(tablename, {options:value})
参数说明:
tablename : 要创建的集合名称
options : 可选参数, 指定有关内存大小及索引的选项 options 可以是如下参数:
capped : 布尔(可选)如果为 true,则创建固定集合。固定集合是指有着固定大小的集合,当达到最大值时,它会自动覆盖最早的文档(条记录)。默认为 false。当该值为 true 时,必须指定 size 参数。
autoIndexId : 布尔(可选)如为 true,自动在 _id 字段创建索引,默认为 false。如果建表时添加该选项创建成功后会有提示,该参数在将来版本中会取消。
size : 数值(可选)为固定集合指定一个最大值(以字节计)。如果 capped 为 true,也需要指定该字段。
max : 数值(可选)指定固定集合中包含文档的最大数量。
例创建testtable表,输入
db.createCollection("testtable")
或者带参数的输入
db.createCollection("testtable",{capped:true,autoIndexId:true,size:6142800,max:10000}) 删除集合(表)
这里删除 testtable 集合(表)
db.testtable.drop() 插入一些简单的记录
向 testtable 表插入 title、tags、likes字段的值
testtable 表和 title 等字段如不存在会被自动创建
方法一,直接输入
db.testtable.insert({title:'MongoDB',tags:['mongodb','database','NoSQL'],likes:100})
显示
WriteResult({ "nInserted" : 1 })
方法二,或者将要插入的值保存到一个变量中,再将该变量插入到表中
例,将值保存到 testvar 变量中
testvar=({title:'MongoDB',tags:['mongodb','database','NoSQL'],likes:100})
再将该变量插入到表中
db.testtable.insert(testvar)
显示
WriteResult({ "nInserted" : 1 })
执行插入时可将返回值赋给一个变量,命令行里输入该变量将打印出返回信息,插入单条或多条记录时均可

var resualt = db.testtable.insert({title:'MongoDB',tags:['mongodb','database','NoSQL'],likes:100})
再输出
resualt
显示
WriteResult({ "nInserted" : 1 }) 一次插入多条数据
db.testtable.insert([{testfield:'testval1'},{testfield:'testval2'}])

testvar=([{testfield:'testval1'},{testfield:'testval2'}])
db.testtable.insert(testvar) 更新文档
这里需要注意的是,固定集合中文档的大小不能改变,否则更新会报错
语法格式如下:
db.tablename.update( where, update, {options:value})
参数说明:
where : update 的查询条件,类似sql 的 where 条件。
update : update 的对象和一些更新的操作符(如$set,$inc...)等,也可以理解为sql update查询内set后面的 options 可以是如下参数:
upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入新记录,true为插入,默认是false,不插入。
multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
writeConcern : 可选,抛出异常的级别。

db.testtable.update({'testfield':'testval1'},{$set:{'testfield':'testval13'}}) 替换文档
语法格式如下:
db.tablename.save(document, {options:value})
参数说明:
document : 文档数据。 options 可以是如下参数:
writeConcern : 可选,抛出异常的级别。
例,将表中 _id 为 5ab48f66d4226cbbff985283 的记录整条替换为新的记录,之前记录的一切字段作废被替换新的内容
db.testtable.save({'_id':ObjectId('5ab48f66d4226cbbff985283'),'title':'MongoDB_test'}) 删除文档
方法一
语法格式如下
db.tablename.remove(where, justOne)
参数说明:
where : 可选 删除的文档的条件。
justOne : 可选 如果设为 true 或 1,则只删除一个文档。默认 false 符合条件的全删。

db.testtable.remove({'title':'MongoDB_test'})
删除一条数据
db.testtable.remove({'title':'MongoDB_test'},1)
删除全部数据
db.testtable.remove({})
方法二
语法格式如下
删除一条
db.tablename.deleteOne(where)

删除多条
db.tablename.deleteMany(where)

db.testtable.deleteOne({'title':'MongoDB_test'})

db.testtable.deleteMany({'title':'MongoDB_test'}) 查询表内文档
db.tablename.find(where, {fieldname : val})
参数说明:
where : 可选,使用查询操作符指定查询条件,不加条件则查询获取整个表内所有文档(条数据)
fieldname : 可选,fieldname 为文档中键值名,表示返回显示或不显示指定的键,val 值为1或0。若不加 fieldname 参数则查询时返回文档中所有键值(默认省略fieldname参数)。
如有多个 fieldname 参数则其 val 值必须都一样,全是1则只返回显示指定的 fieldname 键值,全是0则返回结果隐藏指定的 fieldname 键值 pretty() 方法以格式化的方式来显示查询文档。
db.tablename.find(where, projection).pretty() 只返回一个文档,显示内容会自动格式化,不用加 pretty()。
db.tablename.findOne(where, projection) where 查询条件
等于 -- fieldname : value
小于 -- fieldname : {$lt : value}
小于等于 -- fieldname : {$lte : value}
大于 -- fieldname : {$gt : value}
大于等于 -- fieldname : {$gte : value}
不等于 -- fieldname : {$ne : value}
例查询 testtable 表
and条件 相当于 where testfield = 'testval1' and testfield2 = 'testval11'
db.testtable.find({testfield:'testval1',testfield2:'testval11'})
or条件 相当于 where testfield = 'testval1' or testfield2 = 'testval22'
db.testtable.find({$or:[{testfield:'testval1'},{testfield2:'testval22'}]})
and和or联合使 用相当于 where testfield3 > 100 and (testfield = 'testval1' or testfield2 = 'testval22')
db.testtable.find({testfield3:{$gt:100}, $or:[{testfield:"testval1"}, {testfield2:"testval22"}]}) 返回结果条数限制
db.tablename.find().skip(int).limit(int)
skip 接受一个数字参数,为返回结果中,跳过指定的条数再显示
limit 接受一个数字参数,为返回结果中,限制显示的条数

显示除第一条以下的数据
db.testtable.find().skip(1)
只显示第一条数据
db.testtable.find().limit(1)
只显示第二条数据
db.testtable.find().skip(1).limit(1) 返回结果排序
db.tablename.find().sort({fieldname : val})
参数说明:
fieldname : 指定要排序的键值名
val : 值为 1 升序排列或 -1 降序排列。
skip(),limilt(),sort()三个放在一起执行的时候,执行的顺序是先 sort(), 然后是 skip(),最后是显示的 limit()。

db.testtable.find().sort({testfield3 : 1}) MongoDB 常用的几种数据类型 String : 字符串。存储数据常用的数据类型。在 MongoDB 中,UTF-8 编码的字符串才是合法的。
Integer : 整型数值。用于存储数值。根据所采用的服务器,可分为 32 位或 64 位。
Boolean : 布尔值。用于存储布尔值(真/假)。
Double : 双精度浮点值。用于存储浮点值。
Min/Max keys : 将一个值与 BSON(二进制的 JSON)元素的最低值和最高值相对比。
Array : 用于将数组或列表或多个值存储为一个键。
Timestamp : 时间戳。记录文档修改或添加的具体时间。
Object : 用于内嵌文档。
Null : 用于创建空值。
Symbol : 符号。该数据类型基本上等同于字符串类型,但不同的是,它一般用于采用特殊符号类型的语言。
Date : 日期时间。用 UNIX 时间格式来存储当前日期或时间。可以指定自己的日期时间:创建 Date 对象,传入年月日信息。
Object ID : 对象 ID。用于创建文档的 ID。
Binary Data : 二进制数据。用于存储二进制数据。
Code : 代码类型。用于在文档中存储 JavaScript 代码。
Regular expression : 正则表达式类型。用于存储正则表达式。 writeConcern 抛出异常的级别
NONE : 没有异常抛出。
NORMAL : 仅抛出网络错误异常,没有服务器错误异常。
SAFE : 抛出网络错误异常、服务器错误异常;并等待服务器完成写操作。
MAJORITY : 抛出网络错误异常、服务器错误异常;并等待一个主服务器完成写操作。
FSYNC_SAFE : 抛出网络错误异常、服务器错误异常;写操作等待服务器将数据刷新到磁盘。
JOURNAL_SAFE : 抛出网络错误异常、服务器错误异常;写操作等待服务器提交到磁盘的日志文件。
REPLICAS_SAFE : 抛出网络错误异常、服务器错误异常;等待至少2台服务器完成写操作。

win7 安装 MongoDB 及简单操作的更多相关文章

  1. mongodb的简单操作记录

    由于项目上需要对mongodb进行监控,所以需要先熟悉下什么是mongobd以及mongodb的简单操作 mongodb的安装: curl -O https://fastdl.mongodb.org/ ...

  2. NOSQL -- Mongodb的简单操作与使用(win10)

    NOSQL -- Mongodb的简单操作与使用(wins) MongoDB 创建集合: db.createCollection(name, options) use huhu db.createCo ...

  3. NOSQL -- Mongodb的简单操作与使用(wins)

    NOSQL -- Mongodb的简单操作与使用(wins) 启动mongodb: 1.首先启动服务 dos命令下:net start Mongndb 也可以查询服务,手动开启服务: 完成后: 2.启 ...

  4. MongoDB数据库简单操作

    之前学过的有mysql数据库,现在我们学习一种非关系型数据库 一.简介 MongoDB是一款强大.灵活.且易于扩展的通用型数据库 MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数 ...

  5. Win7 安装 MongoDB

    MongoDB 下载 MongoDB 提供了可用于 32 位和 64 位系统的预编译二进制包,你可以从MongoDB官网下载安装,MongoDB 预编译二进制包下载地址:https://www.mon ...

  6. Ubuntu 安装mysql和简单操作

    http://www.cnblogs.com/zhuyp1015/p/3561470.html ubuntu上安装mysql非常简单只需要几条命令就可以完成. 1. sudo apt-get inst ...

  7. Ubuntu下安装MySQL及简单操作

    Ubuntu上安装MySQL非常简单只需要几条命令就可以完成. 1. sudo apt-get install mysql-server 2. apt-get isntall mysql-client ...

  8. cvsnt 和wincvs 的安装配置既简单操作 2007-07-28 11:33

    CVSNT 配置 版本:CVSNT 2.5.03(Scorpio)Build 2382 安装过程:简单一路next即可. 配置: (一)我们先准备好两个目录,分别是KHRoot,和KHTemp.KHR ...

  9. MongoDB的简单操作

    一.简介 二.MongoDB基础知识 三.安装 四.基本数据类型 五.增删改查操作 六.可视化工具 七.pymongo 一.简介 MongoDB是一款强大.灵活.且易于扩展的通用型数据库 MongoD ...

随机推荐

  1. 数据仓库和Hadoop大数据平台有什么差别?

    广义上来说,Hadoop大数据平台也可以看做是新一代的数据仓库系统, 它也具有很多现代数据仓库的特征,也被企业所广泛使用.因为MPP架构的可扩展性,基于MPP的数据仓库系统有时候也被划分到大数据平台类 ...

  2. Flume采集目录及文件到HDFS案例

    采集目录到HDFS 使用flume采集目录需要启动hdfs集群 vi spool-hdfs.conf # Name the components on this agent a1.sources = ...

  3. Linux字符设备驱动--No.2

    分析中断注册函数:request_irq int butsOpen(struct inode *p, struct file *f) { int irq; int i; ; printk(KERN_E ...

  4. HyperLedger Fabric 1.4 kafka生产环境部署(11.1)

    11.1 Kafka模式简介       上一章介绍的Solo模式只存在一个排序(orderer)服务,是一种中心化结构,一旦排序(orderer)服务出现了问题,整个区块链网络将会崩溃,为了能在正式 ...

  5. 模仿淘宝首页写的高仿页面,脚本全用的原生JS,菜鸟一枚高手看了勿喷哈

    自己仿照淘宝首页写的页面,仿真度自己感觉可以.JS脚本全是用原生JavaScript写得,没用框架.高手看了勿喷,请多多指正哈!先上网页截图看看效果,然后上源码: 上源码,先JavaScript : ...

  6. 北京Uber优步司机奖励政策(1月3日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  7. C++中std::fill/std::fill_n的使用

    There is a critical difference between std::fill and memset that is very important to understand. st ...

  8. Awesome Django

     Awesome Django    If you find Awesome Django useful, please consider donating to help maintain it. ...

  9. dubbo入门(一)

    1.简介 Dubbo由阿里巴巴开源,是一个分布式服务框架,致力于提供高性能和透明化的RPC(远程过程调用)远程服务调用方案,以及SOA服务治理方案.如果没有分布式的需求,Dbubbo是不需要的,其本质 ...

  10. leetcode-颜色分类

     颜色分类     给定一个包含红色.白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色.白色.蓝色顺序排列. 此题中,我们使用整数 0. 1 和 2 分别表示 ...