win7 安装 MongoDB 及简单操作
下载地址
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 及简单操作的更多相关文章
- mongodb的简单操作记录
由于项目上需要对mongodb进行监控,所以需要先熟悉下什么是mongobd以及mongodb的简单操作 mongodb的安装: curl -O https://fastdl.mongodb.org/ ...
- NOSQL -- Mongodb的简单操作与使用(win10)
NOSQL -- Mongodb的简单操作与使用(wins) MongoDB 创建集合: db.createCollection(name, options) use huhu db.createCo ...
- NOSQL -- Mongodb的简单操作与使用(wins)
NOSQL -- Mongodb的简单操作与使用(wins) 启动mongodb: 1.首先启动服务 dos命令下:net start Mongndb 也可以查询服务,手动开启服务: 完成后: 2.启 ...
- MongoDB数据库简单操作
之前学过的有mysql数据库,现在我们学习一种非关系型数据库 一.简介 MongoDB是一款强大.灵活.且易于扩展的通用型数据库 MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数 ...
- Win7 安装 MongoDB
MongoDB 下载 MongoDB 提供了可用于 32 位和 64 位系统的预编译二进制包,你可以从MongoDB官网下载安装,MongoDB 预编译二进制包下载地址:https://www.mon ...
- Ubuntu 安装mysql和简单操作
http://www.cnblogs.com/zhuyp1015/p/3561470.html ubuntu上安装mysql非常简单只需要几条命令就可以完成. 1. sudo apt-get inst ...
- Ubuntu下安装MySQL及简单操作
Ubuntu上安装MySQL非常简单只需要几条命令就可以完成. 1. sudo apt-get install mysql-server 2. apt-get isntall mysql-client ...
- cvsnt 和wincvs 的安装配置既简单操作 2007-07-28 11:33
CVSNT 配置 版本:CVSNT 2.5.03(Scorpio)Build 2382 安装过程:简单一路next即可. 配置: (一)我们先准备好两个目录,分别是KHRoot,和KHTemp.KHR ...
- MongoDB的简单操作
一.简介 二.MongoDB基础知识 三.安装 四.基本数据类型 五.增删改查操作 六.可视化工具 七.pymongo 一.简介 MongoDB是一款强大.灵活.且易于扩展的通用型数据库 MongoD ...
随机推荐
- select epoll poll
如何理解 Epoll select 和 poll 三种模型,能否用生活中的例子做比喻? 比如说你从某宝下单买了几个东西,这几个东西分别由N个快递员分别给你送过来.在某一时刻,你开始等快递.对于sele ...
- ruby中url解码并替换非法字符
url中中文字符解码 str = URI.decode(url_str) 替换非法字符 if ! str.valid_encoding? p str = str.encode("UTF-16 ...
- 微信小程序通过api接口将json数据展现到小程序上
实现知乎客户端的一个重要知识前提就是,要知道怎么通过知乎新闻的接口,来把数据展示到微信小程序端上. 那么我们这一就先学习一下,如何将接口获取到的数据展示到微信小程序上. 1.用到的知识点 <1& ...
- linux下使用汇编语言编写hello world!程序
最近公司需要完成安全方面的测试,随之带来需要更深入地学习攻击方法和漏洞分析的技术,总感觉有点像黑客:),不过不能只知道一些安全测试工具的方法和工具的使用,更需要基础功夫,首先从大学学过的汇编语言(呵呵 ...
- Spring Cloud 分布式事务管理
Spring Cloud 分布式事务管理 在微服务如火如荼的情况下,越来越多的项目开始尝试改造成微服务架构,微服务即带来了项目开发的方便性,又提高了运维难度以及网络不可靠的概率. Spring Clo ...
- 【BZOJ4818】序列计数(动态规划,生成函数)
[BZOJ4818]序列计数(生成函数) 题面 BZOJ 题解 显然是求一个多项式的若干次方,并且是循环卷积 或者说他是一个\(dp\)也没有问题 发现项数很少,直接暴力乘就行了(\(FFT\)可能还 ...
- 北京Uber优步司机奖励政策(2月25日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- C++中std::fill/std::fill_n的使用
There is a critical difference between std::fill and memset that is very important to understand. st ...
- 鸡啄米:C++编程之十三学习之类与对象,类的声明,成员的访问控制
1. 本次学习鸡啄米课程第13篇,把比较重要的学习记录下来,以敦促自己更好的学习.推荐他们的网址学习:http://www.jizhuomi.com/school/c/97.html 2. 在面向过程 ...
- 开胃小菜——impress.js代码详解
README 友情提醒,下面有大量代码,由于网页上代码显示都是同一个颜色,所以推荐大家复制到自己的代码编辑器中看. 今天闲来无事,研究了一番impress.js的源码.由于之前研究过jQuery,看i ...