`
limingnihao
  • 浏览: 1824435 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

MongoDB学习笔记之 第1章 MongoDB的安装

 
阅读更多

第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文件夹

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

 

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

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 手动启动

启动服务

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

 

1.2.4 服务启动

安装 MongoDB 程序作为Windows 服务。

安装 MongoDB 服务
mongod --config d:\mongodb-win32-x86_64-2.4.6\mongod.cfg --install

运行 MongoDB 服务
net start MongoDB

移除服务
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.

解决办法:

使用命令行启动时:

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

 

重新安装系统服务:

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 创建用户

创建用户

adduser mongodb 
passwd mongodb

 

1.3.3 创建数据库文件

创建数据库文件

mkdir -p /data/mongodb_data
chown mongodb /data/mongodb_data –R
chgrp mongodb /data/mongodb_data -R

 

1.3.4 配置文件

创建log文件夹

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

 

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

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 手动启动

启动服务

./mongod --dbpath /data/mongodb_data

 

1.3.6 服务启动

安装 MongoDB 程序作为Linux 服务。

安装 MongoDB 服务

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数据库 

命令行链接病创建数据库

>mongo
>use student

 

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

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

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类型结构:



 

  • 大小: 14.5 KB
分享到:
评论

相关推荐

    MongoDB学习笔记思维导图.pdf

    如果数据库不存在,MongoDB会在执行第一次写操作时自动创建该数据库。使用db.dropDatabase()可以删除当前数据库。查看集合用showcollections命令,而创建集合可以使用db.createCollection('集合名'),删除集合则用db...

    mongodb学习笔记

    mongodb学习笔记 MongoDB 是一个基于分布式文件存储的开源数据库系统,主要用于处理大量数据的存储和查询。以下是 MongoDB 的一些基本操作和技巧: 插入文档 MongoDB 中可以使用 `insert` 方法来插入文档,例如 ...

    MongoDB_学习笔记

    ### MongoDB 学习笔记知识点详解 #### 一、MongoDB 命令行基础操作 **1.1 帮助命令** - **help**:显示 MongoDB shell 的基本帮助信息。 - **db.help()**:提供当前数据库的帮助信息。 - **db.mycoll.help()**:...

    《mongodb入门》读书笔记

    - **multi**:布尔值,默认为 `false`,只更新第一个匹配的文档;若设为 `true`,则更新所有匹配的文档。 - **writeConcern**:写入关注点对象,用于指定写入操作的确认级别。 通过这些命令和方法的学习,您可以...

    MongoDB学习笔记

    ### MongoDB学习笔记知识点详解 #### 一、基本操作命令 **1. 切换数据库** 在MongoDB中,可以通过`use`命令来切换当前的工作数据库。例如,如果想要切换到名为`company`的数据库,可以执行如下命令: ```bash > ...

    Studio 3T(MongoDB数据库GUI连接工具) 学习笔记

    这篇学习笔记将深入探讨如何使用Studio 3T与MongoDB进行交互。 首先,安装并启动Studio 3T。下载适合你操作系统的版本(Windows、macOS或Linux),按照安装向导完成安装。启动后,你会看到一个简洁的界面,准备连接...

    Go 学习笔记 高清

    - 第1章 基础:介绍Go语言的基本概念,包括变量、基本类型、类型转换、常量、字符串、运算符、指针、保留字、控制结构、自定义类型、初始化和内置函数。 - 第2章 函数:涵盖函数类型、多返回值、命名返回参数、变参...

    MongoDB学习笔记之MapReduce使用示例

    一、mapreduce是根据map函数里调用的emit函数的第一个参数来进行分组的 Map-Reduce是一种计算模型,简单的说就是将大批量的工作(数据)分解(MAP)执行,然后再将结果合并成最终结果(REDUCE)。 使用 MapReduce 要...

    《MongoDB权威指南》读书笔记1

    MongoDB 是一个流行的开源NoSQL数据库系统,以其灵活性和高性能而受到广泛的青睐。在《MongoDB权威指南》这本书中,作者详细介绍了MongoDB的核心概念和操作。以下是对书中的主要知识点的总结: 1. **键值对的有序性...

    MongoDB增删改查操作案例-用户信息增删改查.zip

    查询是MongoDB中最常用的功能之一。我们可以使用`db.collection.find()`方法来查找匹配特定条件的文档。例如,要查找所有用户名为"张三"的用户,可以执行`db.users.find({ username: "张三" })`。若需返回所有用户,...

    Go语言学习笔记.pdf 共174页

    Go语言学习笔记.pdf 共174页是一本关于Go语言的详细学习笔记,涵盖了Go语言的基础知识、函数、数组、Maps、Structs、接口、并发、程序结构、标准库等方面的内容。本笔记共分为三大部分:Go语言基础、标准库和扩展库...

    MongoDB 学习笔记

    MongoDB是一款面向文档的NoSQL数据库系统,其主要特点包括高性能、高可用性、以及易于扩展等。它使用一种类似于JSON的格式BSON(Binary JSON)存储数据。在学习MongoDB时,理解其基本操作是至关重要的,这包括配置、...

    mongodb基础语句大全

    以下更新第一个找到的用户,将其年龄增加1: ```javascript db.users.updateOne( { name: "张三" }, { $inc: { age: 1 } } ); ``` 5. 删除数据: `deleteOne()`或`deleteMany()`方法用于删除数据。删除所有...

    Node.js MongoDB AngularJSWeb开发.part3

    标题 "Node.js MongoDB AngularJS Web开发.part3" 暗示了这个压缩包文件是关于使用Node.js、MongoDB和AngularJS进行Web开发的一个系列教程或资料的第三部分。这三者是现代Web开发中的核心技术栈,分别负责后端、...

    数据库系统原理学习笔记

    6. **数据库范式**:范式是数据库规范化的过程,主要包括第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)和第四范式(4NF)。遵循这些范式可以减少数据冗余,提高数据的一致性和完整性。...

    MongoDB修改、删除文档的域属性实例

    MongoDB是一种分布式文档...- MongoDB学习笔记(四) 用MongoDB的文档结构描述数据关系 通过学习这些资源,你将能够更深入地理解如何在MongoDB中进行文档的修改和删除操作,以及如何利用其特性来优化你的数据管理策略。

    大数据技术学习笔记1

    大数据技术学习笔记1 大数据技术学习笔记1 是一份关于大数据技术的学习笔记,涵盖了大数据技术的基本概念、Hadoop 生态系统、MapReduce 算法、Spark 框架、分布式计算平台等多个方面。 Hadoop 生态系统 Hadoop 是...

    redis学习笔记Redis.md

    ### Redis 学习笔记知识点概览 #### 一、Redis 概述与应用场景 ##### 1.1 NoSQL 数据库简介 - **定义**: NoSQL(Not Only SQL)泛指非关系型数据库,它们通常不使用传统的表格关系来存储数据。 - **特性**: NoSQL ...

    Node基础学习笔记.rar

    本压缩包"Node基础学习笔记.rar"包含了Node.js的基础知识、模块化机制、请求与响应的处理、mongoDB数据库的使用以及Express框架和WebSocket编程的相关内容,是学习Node.js的宝贵资料。 一、Node.js基础 Node.js的...

Global site tag (gtag.js) - Google Analytics