Mongodb学习(1)安装以及配置
Mongdb 简介
主要特点
- MongoDB的提供了一个面向文档存储,操作起来比较简单和容易。
- 你可以在MongoDB记录中设置任何属性的索引 (如:FirstName="Sameer",Address="8 Gandhi Road")来实现更快的排序。
- 你可以通过本地或者网络创建数据镜像,这使得MongoDB有更强的扩展性。
- 如果负载的增加(需要更多的存储空间和更强的处理能力) ,它可以分布在计算机网络中的其他节点上这就是所谓的分片。
- Mongo支持丰富的查询表达式。查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组。
- MongoDb 使用update()命令可以实现替换完成的文档(数据)或者一些指定的数据字段 。
- Mongodb中的Map/reduce主要是用来对数据进行批量处理和聚合操作。
- Map和Reduce。Map函数调用emit(key,value)遍历集合中所有的记录,将key与value传给Reduce函数进行处理。
- Map函数和Reduce函数是使用Javascript编写的,并可以通过db.runCommand或mapreduce命令来执行MapReduce操作。
- GridFS是MongoDB中的一个内置功能,可以用于存放大量小文件。
- MongoDB允许在服务端执行脚本,可以用Javascript编写某个函数,直接在服务端执行,也可以把函数的定义存储在服务端,下次直接调用即可。
- MongoDB支持各种编程语言:RUBY,PYTHON,JAVA,C++,PHP,C#等多种语言。
- MongoDB安装简单。
Mongo 安装
它在windows以及linux都能够安装使用,主要分以下几个步骤:
1.下载安装包
2.安装到自定义目录,创建自己的数据库存放目录
3.配置环境变量
4.启动mongo,进行测试
下面以Windows和linux分别来说明其安装配置过程
windows安装
1.下载
在如下地址进行下载安装包
https://www.mongodb.com/download-center?jmp=nav#community
里面有可以选择的版本
我选的是第一个(Windows Server 2008 R2 64-bit and later, with SSL support x64),目前不知道32位的系统能否安装
2.安装
直接按照默认程序安装就好,如果中间出现2502 或者2503的错误
请点击这里查看处理方式
安装过程中,你可以通过点击 "Custom(自定义)" 按钮来设置你的安装目录。
创建自己的数据目录
MongoDB将数据目录存储在 db 目录下。但是这个数据目录不会主动创建,我们在安装完成后需要创建它。
请注意,数据目录应该放在根目录下((如: C:\ 或者 D:\ 等 )。
我在D:盘 安装了 mongodb,因此在D盘创建一个data的目录然后在data目录里创建db目录。
3.环境配置
将安装目录下的bin目录加入到环境变量里面
我的安装路径是: D:MongoDB\bin
右键->我的电脑->属性->高级系统设置->高级->环境变量->系统变量->Path
(Windows环境也可以不配置环境变量,但是配置了使用起来更方便,不用每次都进入安装目录来执行命令)
4.启动momgodb 进行测试
如果数据库路径和安装文件在同一个盘,而且通过CMD命令已经进入 安装目录的bin目录下那么只用执行
mongod.exe
即可开启服务
如果环境变量已经配置, 那么随便在那个目录下都可以,只要执行命令的时候,加上数据库路径参数即可启动
mongod.exe --dbpath D:\data\db
出现 waiting for connections on port 27017 即启动成功
在浏览器输入http://localhost:27017/可以看到显示信息为
It looks like you are trying to access MongoDB over HTTP on the native driver port.
到这里,windows的环境就搭建好了
linux安装
https://www.mongodb.com/download-center?jmp=nav#community
当然也可以使用linux本身的下载命令 来进行下载, 安装包的真正地址是:
https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-amazon-3.4.4.tgz
2.安装
tar -zxvf mongodb-linux-x86_64-3.4.4.tgz
或者直接在UI界面进行解压
以下实例中我们将data目录创建于根目录下(/)。
注意:/data/db 是 MongoDB 默认的启动的数据库路径(--dbpath)。
sudo mkdir -p data/db
export PATH=<mongodb-install-directory>/bin:$PATH
其中 <mongodb-install-directory> 是你自己存放 的解压好的mongodb文件的路径
source .bashrc
另环境配置生效。
4.启动momgodb 进行测试
./mongod
默认的启动的数据库路径是/data/db,也可以使用--dbpath 加上自己设定的数据库路径
2017-05-10T10:55:32.532+0800 I CONTROL [initandlisten] db version v3.4.4
2017-05-10T10:55:32.532+0800 I CONTROL [initandlisten] git version: 888390515874a9debd1b6c5d36559ca86b44babd
2017-05-10T10:55:32.532+0800 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.0.1f 6 Jan 2014
2017-05-10T10:55:32.532+0800 I CONTROL [initandlisten] allocator: tcmalloc
2017-05-10T10:55:32.532+0800 I CONTROL [initandlisten] modules: none
2017-05-10T10:55:32.532+0800 I CONTROL [initandlisten] build environment:
2017-05-10T10:55:32.532+0800 I CONTROL [initandlisten] distmod: ubuntu1404
2017-05-10T10:55:32.532+0800 I CONTROL [initandlisten] distarch: x86_64
2017-05-10T10:55:32.532+0800 I CONTROL [initandlisten] target_arch: x86_64
2017-05-10T10:55:32.532+0800 I CONTROL [initandlisten] options: { storage: { dbPath: "/data/db/" } }
2017-05-10T10:55:32.549+0800 I - [initandlisten] Detected data files in /data/db/ created by the 'wiredTiger' storage engine, so setting the active storage engine to 'wiredTiger'.
2017-05-10T10:55:32.549+0800 I STORAGE [initandlisten]
2017-05-10T10:55:32.549+0800 I STORAGE [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine
2017-05-10T10:55:32.549+0800 I STORAGE [initandlisten] ** See http://dochub.mongodb.org/core/prodnotes-filesystem
2017-05-10T10:55:32.549+0800 I STORAGE [initandlisten] wiredtiger_open config: create,cache_size=3440M,session_max=20000,eviction=(threads_min=4,threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),checkpoint=(wait=60,log_size=2GB),statistics_log=(wait=0),
2017-05-10T10:55:33.193+0800 I CONTROL [initandlisten]
2017-05-10T10:55:33.193+0800 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database.
2017-05-10T10:55:33.193+0800 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted.
2017-05-10T10:55:33.193+0800 I CONTROL [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
2017-05-10T10:55:33.193+0800 I CONTROL [initandlisten]
2017-05-10T10:55:33.193+0800 I CONTROL [initandlisten]
2017-05-10T10:55:33.193+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2017-05-10T10:55:33.193+0800 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2017-05-10T10:55:33.193+0800 I CONTROL [initandlisten]
2017-05-10T10:55:33.193+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2017-05-10T10:55:33.193+0800 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2017-05-10T10:55:33.193+0800 I CONTROL [initandlisten]
2017-05-10T10:55:33.211+0800 I FTDC [initandlisten] Initializing full-time diagnostic data capture with directory '/data/db/diagnostic.data'
2017-05-10T10:55:33.211+0800 I NETWORK [thread1] waiting for connections on port 27017
在浏览器输入http://localhost:27017/可以看到显示信息为
It looks like you are trying to access MongoDB over HTTP on the native driver port.
到这里,基本上mongodb已经安装好了
./mongo
就进入了mongodb的交互式命令
> 2+4
6
> db.person.insert({"person":"quean","nation":"Chinese"})
WriteResult({ "nInserted" : 1 })
> db.person.insert({"name":"alice","age":18})
WriteResult({ "nInserted" : 1 })
> db.person.find()
{ "_id" : ObjectId("5912821b01ac84a44d1b59d4"), "person" : "quean", "nation" : "Chinese" }
{ "_id" : ObjectId("591270a7c9d90290d6e4dd41"), "name" : "alice", "age" : 18 }