MyException - 我的异常网
当前位置:我的异常网» NoSQL » NoSql之MongoDB-Windows下数据库配置及初始使用

NoSql之MongoDB-Windows下数据库配置及初始使用

www.MyException.Cn  网友分享于:2013-09-07  浏览:0次
NoSql之MongoDB--Windows下数据库配置及初步使用

1.NoSql简介

  NoSql(Not Only Sql)指的是非关系型的数据库。下一代数据库主要解决几个要点:非关系型的、分布式的、开源的、水平可扩展的。原始的目的是为了大规模web应用,这场 运动开始于2009年初,通常特性应用如:模式自由、支持简易复制、简单的API、最终的一致性(非ACID)、大容量数据等。NoSQL被我们用得最多的当数key-value存储,当然还有其他的文档型的、列存储、图型数据库、xml数据库等。

常见的NoSql数据库:

CouchDB
Redis
MongoDB
Neo4j
HBase
BigTable

NoSql数据库优缺点:

  • 优势:简单的扩展;快速的读写;低廉的成本;灵活的数据模型
  • 劣势:不提供对SQL的支持;支持的特性不够丰富;现有的产品部够成熟

2.MongoDB简介

  MongoDB是一个高性能,开源,无模式的文档型数据库,是当前NoSql数据库中比较热门的一种。它在许多场景下可用于替代传统的关系型数据库或键/值存储方式。Mongo使用C++开发。Mongo的官方网站地址是:http://www.mongodb.org/

mongodb主要特性:

  • 面向集合存储,易于存储对象类型的数据
  • 模式自由
  • 支持动态查询
  • 支持完全索引,包含内部对象
  • 支持复制和故障恢复
  • 使用高效的二进制数据存储,包括大型对象
  • 文件存储格式为BSON(一种JSON的扩展)

mongodb中的基本概念:

  • 文档(document)是MongoDB中数据的基本单元,非常类似于关系型数据库系统中的行(但是比行要复杂的多)
  • 集合(collection)就是一组文档,如果说MongoDB中的文档类似于关系型数据库中的行,那么集合就如同表
  • MongoDB的单个实例可以容纳多个独立的数据库,每一个数据库都有自己的集合和权限
  • MongoDB自带简洁但功能强大的JavaScript shell,这个工具对于管理MongoDB实例和操作数据作用非常大
  • 每一个文档都有一个特殊的键"_id",它在文档所处的集合中是唯一的,相当于关系数据库中的表的主键

mongodb数据类型:

数据类型                 描述                                                      举例
null            表示空值或者未定义的对象                                         {"x":null}
布尔值           真或者假:true或者false                                        {"x":true}
32位整数         32位整数。shell是不支持该类型的,shell中默认会转换成64位浮点数      
64位整数         64位整数。shell是不支持该类型的,shell中默认会转换成64位浮点数      
64位浮点数       64位浮点数。shell中的数字就是这一种类型                           {"x"3.14"y"3}
字符串           UTF-8字符串                                                   {"foo":"bar"}
符号             shell不支持,shell会将数据库中的符号类型的数据自动转换成字符串      
对象id           文档的12字节的唯一id                                           {"id": ObjectId()}
日期             从标准纪元开始的毫秒数                                          {"date":new Date()}
正则表达式        文档中可以包含正则表达式,遵循JavaScript的语法                    {"foo":/foobar/i}
代码             文档中可以包含JavaScript代码                                   {"x":function() {}}     
未定义           undefined                                                    {"x":undefined}
数组             值的集合或者列表                                               {"arr": ["a","b"]}
内嵌文档          文档可以作为文档中某个key的value                               {"x":{"foo":"bar"}}

3.MongoDB 3.2.9安装

  下载网址:https://www.mongodb.com/download-center?jmp=nav

安装截图

  

 

  

目录结构

 

bin文件:

  该文件夹放的都是可执行文件、配置文件、动态链接库等,bin是binary的缩写,代表的意思是二进制。因为exe,dll,ocx这些可执行文件都是二进制的,所以文件夹名字采用“bin”,是以前的习惯造成的。

LICENSE-GNU-AGPL-3.0.txt - 轻量级的社会化客户管理系统

介绍得比较详细的文档:http://blog.csdn.net/kk185800961/article/details/45001219

4.MongoDB配置

4.1建立工作目录

(1)建立数据存放目录 D:\ImprtantSoft\MongoDB\MongoDBDATA\data

(2)建立日志文件D:\ImprtantSoft\MongoDB\MongoDBDATA\logs

(3)设置系统变量

 

  为了方便从控制台中管理mongodb,不用每次都进入到D:MongoDB中。我的电脑--属性--高级--环境变量--系统变量中path:D:\ImprtantSoft\MongoDB\Server\3.2\bin;

4.2启动mongdb服务

  进入控制台,输入mongod --dbpath D:\ImprtantSoft\MongoDB\MongoDBDATA\data

  运行后创建的data空文件下产生了一系列文件:

  或者创建bat文件,bat文件是dos下的批处理文件。批处理文件是无格式的文本文件,它包含一条或多条命令。它的文件扩展名为 .bat 或 .cmd。在命令提示下键入批处理文件的名称,或者双击该批处理文件,系统就会调用cmd.exe按照该文件中各个命令出现的顺序来逐个运行它们。使用批处理文件(也被称为批处理程序或脚本),可以简化日常或重复性任务。

 

双击mongodb.bat如下图:这样服务就启动了(以前的版本)

 

正常情况下会显示如下:

  在浏览器中输入http://localhost:27017/

  会出现It looks like you are trying to access MongoDB over HTTP on the native driver port.表明服务已经启动,如图所示:

  不要关闭当前这个控制台窗口,另起一个控制台,输入mongo 如下图:表明已成功连接到mongdb.

或者创建bat文件

mongodb27017admin.bat文件中写入mongo 127.0.0.1:27017/admin

直接使用管理员级别,操作等级较高

运行如下:

mongodb27017test.bat文件中写入mongo 127.0.0.1:27017

运行如下:

此时,进入了test用户。

5.MongoDB基本操作

use foobar
show dbs
db.persons.insert({name:”wangchao”})
show collections
db.persons.find()
db.persons.findOne()
var p=db.persons.findOne()
db.persons.update(p,{name:”uspcat”})
db.persons.remove({name:”uspcat”})

运行结果

>mongo 127.0.0.1:27017
MongoDB shell version: 3.2.9
connecting to: 127.0.0.1:27017/test
> show dbs
local  0.000GB
> use foobar
switched to db foobar
> show dbs
local  0.000GB
> db.persons.insert({name:"Raining_wcc"})
WriteResult({ "nInserted" : 1 })
> show collections
persons
> db.persons.find()
{ "_id" : ObjectId("57b4044e85a1a6b1162384a2"), "name" : "Raining_wcc" }
> db.persons.insert({parterner:"superman"})
WriteResult({ "nInserted" : 1 })
> db.persons.find()
{ "_id" : ObjectId("57b4044e85a1a6b1162384a2"), "name" : "Raining_wcc" }
{ "_id" : ObjectId("57b404d285a1a6b1162384a3"), "parterner" : "superman" }
> db.persons.findOne()
{ "_id" : ObjectId("57b4044e85a1a6b1162384a2"), "name" : "Raining_wcc" }
> var p = db.persons.findOne()
> p
{ "_id" : ObjectId("57b4044e85a1a6b1162384a2"), "name" : "Raining_wcc" }
> db.persons.update(p,{name:"wcc"})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.persons.find()
{ "_id" : ObjectId("57b4044e85a1a6b1162384a2"), "name" : "wcc" }
{ "_id" : ObjectId("57b404d285a1a6b1162384a3"), "parterner" : "superman" }
> db.persons.insert({name:"supergirl"})
WriteResult({ "nInserted" : 1 })
> db.persons.find()
{ "_id" : ObjectId("57b4044e85a1a6b1162384a2"), "name" : "wcc" }
{ "_id" : ObjectId("57b404d285a1a6b1162384a3"), "parterner" : "superman" }
{ "_id" : ObjectId("57b4057185a1a6b1162384a4"), "name" : "supergirl" }
> db.persons.remove({name:"wcc"})
WriteResult({ "nRemoved" : 1 })
> db.persons.find()
{ "_id" : ObjectId("57b404d285a1a6b1162384a3"), "parterner" : "superman" }
{ "_id" : ObjectId("57b4057185a1a6b1162384a4"), "name" : "supergirl" }
>

 

本文链接:http://www.cnblogs.com/homewch/p/5779192.html

文章评论

老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
什么才是优秀的用户界面设计
什么才是优秀的用户界面设计
中美印日四国程序员比较
中美印日四国程序员比较
程序员周末都喜欢做什么?
程序员周末都喜欢做什么?
“懒”出效率是程序员的美德
“懒”出效率是程序员的美德
10个调试和排错的小建议
10个调试和排错的小建议
我是如何打败拖延症的
我是如何打败拖延症的
如何成为一名黑客
如何成为一名黑客
一个程序员的时间管理
一个程序员的时间管理
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
看13位CEO、创始人和高管如何提高工作效率
看13位CEO、创始人和高管如何提高工作效率
亲爱的项目经理,我恨你
亲爱的项目经理,我恨你
2013年美国开发者薪资调查报告
2013年美国开发者薪资调查报告
那些性感的让人尖叫的程序员
那些性感的让人尖叫的程序员
程序员和编码员之间的区别
程序员和编码员之间的区别
程序员都该阅读的书
程序员都该阅读的书
编程语言是女人
编程语言是女人
 程序员的样子
程序员的样子
为啥Android手机总会越用越慢?
为啥Android手机总会越用越慢?
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
那些争议最大的编程观点
那些争议最大的编程观点
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
为什么程序员都是夜猫子
为什么程序员都是夜猫子
程序员的一天:一寸光阴一寸金
程序员的一天:一寸光阴一寸金
漫画:程序员的工作
漫画:程序员的工作
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
“肮脏的”IT工作排行榜
“肮脏的”IT工作排行榜
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
程序员的鄙视链
程序员的鄙视链
Google伦敦新总部 犹如星级庄园
Google伦敦新总部 犹如星级庄园
写给自己也写给你 自己到底该何去何从
写给自己也写给你 自己到底该何去何从
每天工作4小时的程序员
每天工作4小时的程序员
程序员最害怕的5件事 你中招了吗?
程序员最害怕的5件事 你中招了吗?
总结2014中国互联网十大段子
总结2014中国互联网十大段子
代码女神横空出世
代码女神横空出世
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
我的丈夫是个程序员
我的丈夫是个程序员
程序员应该关注的一些事儿
程序员应该关注的一些事儿
程序员必看的十大电影
程序员必看的十大电影
Java程序员必看电影
Java程序员必看电影
旅行,写作,编程
旅行,写作,编程
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
鲜为人知的编程真相
鲜为人知的编程真相
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有