第1章 MongoDB的安装

(黎明你好原创作品,转载请注明)

1.1 MongoDB简介

MongoDB是一个基于分布式文件存储的数据库开源项目。由C++语言编写,旨在为WEB应用提供可护展的高性能数据存储解决方案。

它的特点是可扩展,高性能,易使用,模式自由,存储数据非常方便等。

1.1.1 主要功能特性

a)面向文档存储:(类JSON数据模式简单而强大)。

b)高效的传统存储方式:支持二进制数据及大型对象(如照片和视频)。

c)复制及自动故障转移:Mongo数据库支持服务器之间的数据复制,支持主-从模式及服务器之间的相互复制。

d)Auto-Sharding自动分片支持云级扩展性(处于早期alpha阶段):自动分片功能支持水平的数据库集群,可动态添加额外的机器。

e)动态查询:它支持丰富的查询表达式。查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组。

f)全索引支持:包括文档内嵌对象及数组。Mongo的查询优化器会分析查询表达式,并生成一个高效的查询计划。

g)支持RUBY,PYTHON,JAVA,C++,PHP等多种语言。

1.1.2 适用场景

a)适合实时的插入,更新与查询,并具备应用程序实时数据存储所需的复制及高度伸缩性。

b)适合作为信息基础设施的持久化缓存层。

c)适合由数十或数百台服务器组成的数据库。因为Mongo已经包含对MapReduce引擎的内置支持。

d)Mongo的BSON数据格式非常适合文档化格式的存储及查询。

1.1.3 不适用场景

a)高度事务性的系统。

b)传统的商业智能应用。

c)级为复杂的SQL查询。

1.2 Windows环境安装

1.2.1 下载tar包

mongodb-win32-x86_64-2.4.6。

1.2.2 配置文件

创建log文件夹

  1. md D:\mongodb-win32-x86_64-2.4.6 \log

创建MongoDB的logpath选项的配置文件:

  1. echo logpath=d:\mongodb-win32-x86_64-2.4.6\log\mongo.log > d:\mongodb-win32-x86_64-2.4.6\mongod.cfg

1.2.3 手动启动

启动服务

  1. mongod --dbpath d:\mongodb_data
  2. mongod --config d:\mongodb-win32-x86_64-2.4.6\mongod.cfg

1.2.4 服务启动

安装 MongoDB 程序作为Windows 服务。

  1. 安装 MongoDB 服务
  2. mongod --config d:\mongodb-win32-x86_64-2.4.6\mongod.cfg --install
  3. 运行 MongoDB 服务
  4. net start MongoDB
  5. 移除服务
  6. mongod --remove

1.2.5 REST is not enabled

当出现以下错误时

REST is not enabled. use --rest to turn on. check that port 28017 is secured for the network too.

解决办法:

使用命令行启动时:

  1. mongod --dbpath d:\mongodb_data  --rest --port 27017

重新安装系统服务:

  1. mongod --dbpath d:\mongodb_data --config d:\mongodb-win32-x86_64-2.4.6\mongod.cfg --rest --port 27017 --install

1.3 Linux环境安装

1.3.1 下载包tgz

mongodb-linux-i686-2.4.6.tgz

1.3.2 创建用户

创建用户

  1. adduser mongodb
  2. passwd mongodb

1.3.3 创建数据库文件

创建数据库文件

  1. mkdir -p /data/mongodb_data
  2. chown mongodb /data/mongodb_data –R
  3. chgrp mongodb /data/mongodb_data -R

1.3.4 配置文件

创建log文件夹

  1. mkdir /opt/mongodb/mongodb-linux-i686-2.4.6/logs

创建MongoDB的logpath选项的配置文件:

  1. echo /opt/mongodb/mongodb-linux-i686-2.4.6/bin/mongod --dbpath /data/mongodb_data/ --logpath /opt/mongodb/mongodb-linux-i686-2.4.6/logs/mongodb.log --rest --port 27017

1.3.5 手动启动

启动服务

  1. ./mongod --dbpath /data/mongodb_data

1.3.6 服务启动

安装 MongoDB 程序作为Linux 服务。

安装 MongoDB 服务

  1. echo /opt/mongodb/mongodb-linux-i686-2.4.6/bin/mongod --dbpath /data/mongodb_data/ --logpath /opt/mongodb/mongodb-linux-i686-2.4.6/logs/mongodb.log --rest --port 27017–fork >> /etc/rc.local

1.4 链接数据库

使用命令行方式,并创建student数据库

命令行链接病创建数据库

  1. >mongo
  2. >use student

在Student数据库中,创建user集合,插入一条文档

在Student数据库插入一条数据并查询

  1. db.user.save({username: "limingnihao", nickname: "黎明你好", password: "123456"})

1.5 操作命令

功能 命令
进入和创建数据库 use test
增加或修改用户密码 db.addUser('name','pwd')
查看用户列表 db.system.users.find()
用户验证 db.auth('name','pwd')
删除用户 db.removeUser('name')
查看主从复制状态 db.printReplicationInfo()
修复数据库 db.repairDatabase()
拷贝数据库 db.copyDatabase("mydb","temp", 127.0.0.1");
克隆数据库 db.cloneDatabase(“127.0.0.1”);
删除当前的数据库 db.dropDatabase()
查看当前使用的数据库 db.status()
数据库版本 db.version()
查看所有用户 show users
查看所有数据库 show dbs
查看所有的collection show collections
查看profiling show profile
查询之前的错误信息 db.getPrevError()
清除错误记录 db.resetError()
创建一个聚集集合(table) db.createCollection(“collName”, {size: 20, capped: 5, max: 100})
得到指定名称的聚集集合(table) db.getCollection("account")
得到当前db的所有聚集集合 db.getCollectionNames()
显示当前db所有聚集索引的状态 db.printCollectionStats()

1.6 数据类型

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

ObjectId类型结构:

MongoDB学习笔记之 第1章 MongoDB的安装的更多相关文章

  1. MongoDB学习笔记(1):MongoDB的安装和说明

    MongoDB学习笔记(1):MongoDB的安装和说明 快速开始 下载地址 官网下载: https://www.mongodb.com/download-center?jmp=nav#communi ...

  2. MongoDB学习笔记系列

    回到占占推荐博客索引 该来的总会来的,Ef,Redis,MVC甚至Sqlserver都有了自己的系列,MongoDB没有理由不去整理一下,这个系列都是平时在项目开发时总结出来的,希望可以为各位一些帮助 ...

  3. MongoDB学习笔记系列~目录

    MongoDB学习笔记~环境搭建 (2015-03-30 10:34) MongoDB学习笔记~MongoDBRepository仓储的实现 (2015-04-08 12:00) MongoDB学习笔 ...

  4. MongoDB学习笔记:快速入门

    MongoDB学习笔记:快速入门   一.MongoDB 简介 MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统.在高负载的情况下,添加更多的节点,可以保证服务器性能.M ...

  5. PHP操作MongoDB学习笔记

    <?php/*** PHP操作MongoDB学习笔记*///*************************//**   连接MongoDB数据库  **////*************** ...

  6. MongoDB 学习笔记(原创)

    MongoDB 学习笔记 mongodb 数据库 nosql 一.数据库的基本概念及操作 SQL术语/概念 MongoDB术语/概念 解释/说明 database database 数据库 table ...

  7. mongoDB 学习笔记纯干货(mongoose、增删改查、聚合、索引、连接、备份与恢复、监控等等)

    最后更新时间:2017-07-13 11:10:49 原始文章链接:http://www.lovebxm.com/2017/07/13/mongodb_primer/ MongoDB - 简介 官网: ...

  8. MongoDB学习笔记(转)

    MongoDB学习笔记(一) MongoDB介绍及安装MongoDB学习笔记(二) 通过samus驱动实现基本数据操作MongoDB学习笔记(三) 在MVC模式下通过Jqgrid表格操作MongoDB ...

  9. 【转】MongoDB学习笔记(查询)

    原文地址 MongoDB学习笔记(查询) 基本查询: 构造查询数据. > db.test.findOne() { "_id" : ObjectId("4fd58ec ...

  10. MongoDB学习笔记(六)--复制集+sharding分片 && 总结

    复制集+sharding分片                                                               背景 主机 IP 服务及端口 Server A ...

随机推荐

  1. JSP的文件上传和下载

    文件的上传和下载 文件的上传和下载,是非常常见的功能.很多的系统中,或者软件中都经常使用文件的上传和下载. 比如:微信头像,就使用了上传. 邮箱中也有附件的上传和下载功能. 文件的上传介绍 1.要有一 ...

  2. 深度学习批次(batch)、迭代(iteration)、周期(epoch)、前向传播(forward propagation)、反向传播(backward propagation)、学习率(learning rate)概念解释

    虽然现在应该是已经熟练掌握这些基础概念的时候,但是我是鱼的记忆,上一秒的事情,下一秒就忘了,除非是重要的人的重要的事情,呜呜呜呜,我这个破脑子. 还是写一下吧,直接GPT出来的(人类之光,欢呼~). ...

  3. 为什么我觉得需要熟悉vim使用,难道仅仅是为了耍酷?

    实例说话: 使用vscode保存,有报提示信息,可以以超级用户身份重试,于是我授权root给vscode软件,却还提示失败! 而实际上,我使用cat命令发现已经写入成功了 终端内使用cat这条shel ...

  4. dfs 【XR-2】奇迹——洛谷5440

    问题描述: 现有一个八位数,从左往右分别代表年月日,例如20240919,代表2024年9月19日,现将该八位数蒙住几位数,问填入数字之后有几种情况是的日为质数,月+日为质数,年+月+日为质数 输入: ...

  5. 课时09:Metasploit使用基础

    下载地址:https://docs.metasploit.com/docs/using-metasploit/getting-started/nightly-installers.html Explo ...

  6. Word、Excel办公书的资源下载

    我是清华社编辑,下载资源没有版权问题,可供读者个人学习用,但不允许商用. 微信扫描,清华社网盘,可转自己邮箱下载.安全,无风险. <Word/Excel/PPT 2019商务办公从入门到精通&g ...

  7. Camera 冷启动阶段分解

    目录 一.Camx trace 调试开关设置 1.设置 camxoverridesettings trace开关 2. 重启后设置开启camx trace 开关 二.Camera 冷启动阶段分解分析 ...

  8. 小程序把html代码渲染到页面上 rich-text

    <rich-text nodes="<h1>html的代码显示再小程序使用rich-text组件</h1>"></rich-text> ...

  9. 0201-PyTorch0.4.0迁移指南以及代码兼容

    0201-PyTorch0.4.0迁移指南以及代码兼容 目录 一.概要 二.合并Tensor和Variable和类 2.1 Tensor中的type()改变了 2.2 什么时候autograd开始自动 ...

  10. DNShell

    DNShell 一款基于DNS C2隧道的反弹shell工具. 支持 功能: 支持DNS-recordA-直连型 的C2隧道. 目标: Windows下基于Powershell的反弹. Linux下基 ...