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中的数字就是这一种类型 {} 字符串 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 MongoDB shell version: connecting to: /test > show dbs local .000GB > use foobar switched to db foobar > show dbs local .000GB > db.persons.insert({name:"Raining_wcc"}) WriteResult({ }) > show collections persons > db.persons.find() { "_id" : ObjectId("57b4044e85a1a6b1162384a2"), "name" : "Raining_wcc" } > db.persons.insert({parterner:"superman"}) WriteResult({ }) > 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({ , , }) > db.persons.find() { "_id" : ObjectId("57b4044e85a1a6b1162384a2"), "name" : "wcc" } { "_id" : ObjectId("57b404d285a1a6b1162384a3"), "parterner" : "superman" } > db.persons.insert({name:"supergirl"}) WriteResult({ }) > db.persons.find() { "_id" : ObjectId("57b4044e85a1a6b1162384a2"), "name" : "wcc" } { "_id" : ObjectId("57b404d285a1a6b1162384a3"), "parterner" : "superman" } { "_id" : ObjectId("57b4057185a1a6b1162384a4"), "name" : "supergirl" } > db.persons.remove({name:"wcc"}) WriteResult({ }) > db.persons.find() { "_id" : ObjectId("57b404d285a1a6b1162384a3"), "parterner" : "superman" } { "_id" : ObjectId("57b4057185a1a6b1162384a4"), "name" : "supergirl" } >
本文链接:http://www.cnblogs.com/homewch/p/5779192.html
NoSql之MongoDB--Windows下数据库配置及初步使用的更多相关文章
- Windows下安装配置MongoDB
Windows下安装配置MongoDB 一,介绍 MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统.在高负载的情况下,添加更多的节点,可以保证服务器性能. MongoDB ...
- (转)NoSQL——Redis在win7下安装配置的学习一
NoSQL——Redis在win7下安装配置的学习一 有些也是从网上看来的 1.下载安装 Redis它没有windows的官方版本,但是又非官方的版本,到官网上去下载相应的版本,我的电脑是win7 ...
- Oracle 11g即时客户端在windows下的配置
Oracle 11g即时客户端在windows下的配置 by:授客QQ:1033553122 instantclient-basic-nt-11.2.0.3.0.zip客户端压缩包为例 步骤 1. 假 ...
- windows下mysql配置
windows下mysql配置 忙活了大半天,总算配置好了,本文献给windows下没试用过Mysql的小白,勿喷 http://blog.csdn.net/z1074907546/article ...
- Windows下MySQL配置及安全加固总结
Windows下MySQL配置及安全加固总结 在网管的实际使用过程中,MySQL数据库在安装后的配置及安全加固内容,在客户中逐渐要求越来越高.从反馈的问题看,一般都是由第三方软件公司的软件扫描整个系统 ...
- Windows下安装配置免安装MySQL5.7服务器
Windows下安装配置免安装MySQL5.7服务器 1.下载.解压安装包 从MySQL官方网站上下载mysql-5.7.19-winx64.zip 下载完成后,把安装包解压到D:\DevSoft ...
- [转帖]Windows 下如何配置Oracle ASM???
Windows 下如何配置Oracle ASM??? candon123关注10人评论16725人阅读2011-02-09 21:40:57 本篇介绍了如何在windows下创建裸设备,并创建AS ...
- Windows下Nginx配置SSL实现Https访问(包含证书生成)
Vincent.李 Windows下Nginx配置SSL实现Https访问(包含证书生成) Windows下Nginx配置SSL实现Https访问(包含证书生成) 首先要说明为什么要实现https ...
- 在windows下安装配置Ulipad
在windows下安装配置Ulipad 今天推荐一款轻便的文本编辑器Ulipad,用来写一些小的Python脚本非常方便. Ulipad下载地址: https://github.com/limodou ...
随机推荐
- JS ——window.onload与$(document).ready()
我们常常在页面加载完成以后做一些操作,比如一些元素的显示与隐藏.一些动画效果.我们通常有两种方法来完成这个事情,一个就是window.onload事件,另一个就是JQuery的ready()方法.那么 ...
- IOS开发中有用的第三方库
#Objective-C中最受瞩目库 [链接](https://github.com/languages/Objective-C/most_watched) * [three20](https:/ ...
- 转:不再以讹传讹,GET和POST的真正区别
如果有人问你,GET和POST,有什么区别?你会如何回答? 我的经历 前几天有人问我这个问题.我说GET是用于获取数据的,POST,一般用于将数据发给服务器之用. 这个答案好像并不是他想要的.于是他继 ...
- Delphi字符串与字符数组之间的转换(初始化的重要性)
紧接着上篇博客讲解的内容: 将Char型数组转换为string类型还有下面的这种方法 但是我在测试的时候遇到了一些问题,并在下面进行了解释和总结 先说出我的总结 其实我们在学习编程的时候(比如我之前学 ...
- 使用Asyncio的Coroutine来实现一个有限状态机
如图: #!/usr/bin/env python # -*- coding: utf-8 -*- import asyncio import datetime import time from ra ...
- VC++中字符串编码的转换
在以前VC++6.0中默认的字符集是多字节字符集(MBCS:Multi-Byte Character Set),而VS2005及以后默认的字符集是Unicode,这样导致以前在VC6.0中非常简单实用 ...
- Visual Studio Code 1.0发布:100+语言,300+pull请求,1000+扩展
在第一个预览版发布一年后,微软发表了Visual Studio Code 1.0. 在//BUILD 2015大会上,微软宣布,他们的一个团队需要几个月来创建Visual Studio Code的第一 ...
- hdu 5289 rmp+二分+枚举后界 or单调队列 ****
好题~~ 给你n个数和k,求有多少的区间使得区间内部任意两个数的差值小于k,输出符合要求的区间个数,枚举后界~~ 又是一种没见过的方法,太弱了/(ㄒoㄒ)/~~ #include <cstdio ...
- 使用SOUI开发的界面集锦
仿QQ管家界面
- ssh 免密码登陆
远程ssh登陆服务器或者其他机器时或者scp时,需要输入密码,感觉很麻烦,于是研究如何免密码登陆. step1:Client端生成公钥和密钥 执行命令 ssh-keygen 进入目录~/.ssh里面, ...