NoSql之MongoDB--数据库配置及初步使用

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

时间: 2024-11-06 23:35:22

NoSql之MongoDB--数据库配置及初步使用的相关文章

浅析MongoDB数据库的海量数据存储应用

[摘要]当今已进入大数据时代,特别是大规模互联网web2.0应用不断发展及云计算所需要的海量存储和海量计算发展,传统的关系型数据库已无法满足这方面的需求.随着NoSQL数据库的不断发展和成熟,可以较好地解决海量存储和海量计算方面的应用需求.本文重点描述作为NoSQL之一MongoDB数据库在海量数据存储方面的应用. 1 引言NoSQL,全称是“Not Only Sql”,指的是非关系型的数据库.这类数据库主要有这些特点:非关系型的.分布式.开源的.水平可扩展的.原始目的是为了大规模web应用,这

Linux下安装配置MongoDB数据库

说明: 操作系统:CentOS 5.X 64位 IP地址:192.168.21.130 实现目的: 安装配置MongoDB数据库 具体操作: 一.关闭SElinux.配置防火墙 1.vi /etc/selinux/config #SELINUX=enforcing #注释掉 #SELINUXTYPE=targeted #注释掉 SELINUX=disabled #增加 :wq!  #保存退出 setenforce 0 #使配置立即生效 2.vi /etc/sysconfig/iptables  

Linux下Mongodb数据库主从同步配置

说明: 有两台已经安装完成的Mongodb数据库服务器,现在需要把一台设置为主库,另一台设置为从库,实现主从同步. 操作系统:CentOS 7.0 64位 MongoDB数据库版本:mongodb-linux-x86_64-2.6.5 准备工作:MongoDB数据库安装 具体操作: 一.配置MongoDB主库 以下操作在MongoDB主库服务器上进行 1.cd  /usr/local/mongodb/ #进入MongoDB安装目录 vi /usr/local/mongodb/mongodb.co

【MongoDB数据库】怎样安装、配置MongoDB

本blog以最简洁的方式记录了博主在折腾MongoDB过程中点点滴滴,当中包含下载MongoDB.配置环境变量.怎样启动MongoDBserver.怎样连接MongoDBserver以及怎样连接MongoDBserver等. 1.下载 MongoDB 官方下载地址:http://www.mongodb.org/downloads 本机是Windows 7 32位.故下载的是mongodb-win32-i386-2.6.1.zip,兴许例程均是基于该版本号数据库. 2.配置环境变量 解压mongo

CentOS6.5_X64下安装配置MongoDB数据库

环境准备: 硬件要求:50G硬盘 8G内存 4核CPU 软件要求:Linux操作系统:CentOS6.5_X64  mongodb-linux-x86_64-2.6.10.tgz 目的: 安装配置MongoDB数据库 具体操作: 一.关闭SElinux.配置防火墙 1.vi /etc/selinux/config #SELINUX=enforcing #注释掉 #SELINUXTYPE=targeted #注释掉 SELINUX=disabled #增加 :wq!  #保存退出 setenfor

【MongoDB数据库】如何安装、配置MongoDB

本blog以最简洁的方式记录了博主在折腾MongoDB过程中点点滴滴,其中包括下载MongoDB.配置环境变量.如何启动MongoDB服务器.如何连接MongoDB服务器以及如何连接MongoDB服务器等. 1.下载 MongoDB 官方下载地址:http://www.mongodb.org/downloads 本机是Windows 7 32位,故下载的是mongodb-win32-i386-2.6.1.zip,后续例程均是基于该版本数据库. 2.配置环境变量 解压mongodb-win32-i

django中配置多个mongodb数据库

在Djnago中使用MongoDB数据库时,使用mongoengine模块.在settings中配置数据库连接如下: from mongoengine import connect connect('dbname1', host='127.0.0.1', port=27017) 其中的dbname1为要连接的mongodb数据库名字,host为mongodb数据库ip,port为相应的端口. 上面为单个数据库的配置,如果要配置多个数据库,一要在settings中增加数据库连接:二要在models

SpringBoot2.0 基础案例(15):配置MongoDB数据库,实现增删改查逻辑

一.NoSQL简介 1.NoSQL 概念 NoSQL( Not Only SQL ),意即"不仅仅是SQL".对不同于传统的关系型数据库的数据库管理系统的统称.NoSQL用于超大规模数据的存储.这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展. 2.NoSQL的优点/缺点 --优点: 高可扩展性 分布式计算 低成本 架构的灵活性,半结构化数据 没有复杂的关系 --缺点: 没有标准化 有限的查询功能(到目前为止) 数据展现不直观 二.MongoDB数据库 1.MongoDB

MongoDB数据库详细配置

本文源自:https://www.jianshu.com/p/cc3b14e3621c MongoDB数据库详细配置说明(文章来源于Internet) 启动MongoDB有2种方式 直接指定配置参数 指定配置文件. 由配置文件启动方式如下: mongod --config /your_path/mongodb.conf 配置如下: verbose:日志信息冗余.默认false.提高内部报告标准输出或记录到logpath配置的日志文件中.要启用verbose或启用verbosity 用vvvv参数

mongoDB数据库原生配置

最近小冷在工作中使用到了mongoDB数据库,所以就简单的写了个demo,和大家简单分享下,如果大家也有想分享的东西或者需要分享的东西,生活或者其他都行,可以关注小冷公众号秦川以北或者加小冷微信qxy5288分享你的故事...? 废话不说开始搞: MongoDB简单介绍: MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案. MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的