我这边的查询场景是数据量大,范围查询,对一致性没有太高的要求,无事务。mongodb是个文档型的nosql数据库。几乎可以作所有关系数据库单表的所有操作,就是不能够join,所以一般都会设计成宽表,或使用它的embeded document。选择mongodb, 主要是因为简单,查询接口非常丰富,它支持排序,分页,范围查询,唯一索引和B+树索引。。
1. 下载
http://www.mongodb.org/downloads
注: 32位操作系统,mongodb只能写到2G。
wget http://fastdl.mongodb.org/linux/mongodb-linux-i686-1.6.5.tgz
2. 安装
mongo安装非常简单,只要解压一下就行了。
tar zxvf mongodb-linux-i686-1.6.5.tgz
3. 启动
bin目录下的mongod是服务端程序, 启动唯一需要的就是指定data目录
我见了一个数据目录如下,~/mongodb/data, 这个目录随便指定
mongod --dbpath ~mongodb/data
Tue Feb 22 08:13:47 MongoDB starting : pid=3023 port=27017 dbpath=/home/guru/mongodb/data 32-bit
** NOTE: when using MongoDB 32 bit, you are limited to about 2 gigabytes of data
** see http://blog.mongodb.org/post/137788967/32-bit-limitations
Tue Feb 22 08:13:47 db version v1.6.5, pdfile version 4.5
Tue Feb 22 08:13:47 git version: 0eb017e9b2828155a67c5612183337b89e12e291
Tue Feb 22 08:13:47 sys info: Linux domU-12-31-39-01-70-B4 2.6.21.7-2.fc8xen #1 SMP Fri Feb 15 12:39:36 EST 2008 i686 BOOST_LIB_VERSION=1_37
Tue Feb 22 08:13:47 [initandlisten] waiting for connections on port 27017
Tue Feb 22 08:13:47 [websvr] web admin interface listening on port 28017
4. 玩玩看
直接运行bin目录下的mongo, 默认会连接到测试库
guru@idea:~/mongodb/mongodb-linux-i686-1.6.5/bin$ mongo
MongoDB shell version: 1.6.5
connecting to: test
> user={"name":"张三","birth":"20080309"}
{ "name" : "张三", "birth" : "20080309" }
> db.users.insert(user)
> db.users.find()
{ "_id" : ObjectId("4d6301583722875bae8e309c"), "name" : "张三", "birth" : "20080309" }
> db.users.findOne()
{
"_id" : ObjectId("4d6301583722875bae8e309c"),
"name" : "张三",
"birth" : "20080309"
}
>
这里的_id=4d6301583722875bae8e309c, 如果没有指定id,mongodb会生成,具体生成规则如下
id一共由12个字节组成,24位16进制数,按字节:
0-3字节: 表示timestamp,精确到秒
4-6字节: 是host的哈希,代表机器名
7-8字节: 代表进程PID
9-11字节:自增值
按照这种算法,前面的9个字节保证同一秒内,不同机器,不同进程是不冲突的,后三个字节保证同一个进程是不冲突的。
我们验证一下, 按照刚才的,又插入了一条记录。
{ "_id" : ObjectId("4d6301583722875bae8e309c"), "name" : "张三", "birth" : "20080309" }
{ "_id" : ObjectId("4d6303623722875bae8e309d"), "name" : "丽丝", "birth" : "20080309" }
按照这种算法,可以知道mongodb在磁盘上是大致按照时间升序,顺序存放的。
附件是mongodb的一本电子书,。
OReilly.MongoDB.The.Definitive.Guide.Sep.2010.pdf
分享到:
相关推荐
"MongoDB 在 Linux 下的配置和启动" MongoDB 是一个流行的 NoSQL 数据库,广泛应用于大数据存储和实时数据处理。在 Linux 环境下,配置和启动 MongoDB 需要遵循一定的步骤,本文将详细介绍在 Linux 下配置和启动 ...
Linux 安装 MongoDB 教程是指在 Redhat Linux 4 系统下安装 MongoDB 32 位版本的详细步骤指导。MongoDB 是一个文件数据库,其他 Linux 系统下安装也是类似的。 知识点 1:下载 MongoDB 在安装 MongoDB 之前,需要...
总的来说,这个C# MongoDB帮助类源码提供了一种简洁的方式来处理MongoDB数据库操作,同时包含了一个有价值的性能测试,对于理解和优化MongoDB在C#环境中的分页策略非常有帮助。通过深入学习和实践,你可以更好地掌握...
MongoDB中的Journaling是指将数据库的操作日志记录到磁盘上,以便在系统崩溃时可以快速地恢复数据。MongoDB的原子性和事务机制可以确保数据的一致性。 MongoDB的应用场景包括: 1.大数据处理:MongoDB可以处理...
在“quick-mongo-atlas-datasets-master”这个压缩包中,我们可以推测这可能是一个与MongoDB Atlas相关的项目。MongoDB Atlas是MongoDB公司提供的云数据库服务,它允许用户在AWS、Azure和Google Cloud上轻松部署、...
MongoDB是一款开源、分布式、高性能的NoSQL数据库,它不使用传统的表格和列式结构来存储数据,而是采用键值对、文档、集合和图形数据模型。这种设计使得MongoDB在处理非结构化和半结构化数据时表现出色,特别适合大...
SharpCompress.dll 是一个开源的 .NET 库,支持多种压缩格式如 ZIP、GZIP、TAR 等,可能在 MongoDB 驱动中用于读取或写入压缩的归档文件。 mongocrypt.dll 是 MongoDB 客户端加密库,用于自动加密和解密 MongoDB ...
MongoDB是一个流行的开源、分布式文档型数据库,设计用于处理大量数据并提供高可用性和高性能。在Java应用程序中,为了与MongoDB进行交互,我们需要使用Java MongoDB驱动程序。这个压缩包包含的就是Java连接MongoDB...
1. **多文档事务**:MongoDB 4.2引入了对多文档ACID(原子性、一致性、隔离性和持久性)事务的支持,这意味着用户可以在一个事务中处理多个文档,提供了与传统关系型数据库相似的事务处理能力。这对于跨集合操作和...
此“mongodb7.0.0安装包”是针对Windows 64位操作系统的一个版本,适用于需要在Windows环境中部署MongoDB服务的用户。 在安装MongoDB 7.0.0之前,你需要确保你的计算机满足以下硬件和软件要求: 1. 操作系统:...
MongoDB是一款NoSQL数据库,能够存储大量的矢量数据。本文将介绍如何使用Geoserver将MongoDB矢量数据发布为地图服务。 一、Geoserver概述 Geoserver是基于Java开发的一款开源GIS服务器,能够处理大量的空间数据,...
资源名称:MongoDB应用设计模式内容简介:无论是在构建社交媒体网站,还是在开发一个仅在内部使用的企业应用程序,《MongoDB应用设计模式》展示了MongoDB需要解决的商业问题之间的连接。你将学到如何把MongoDB设计...
MongoDB是一款开源、高性能、无模式的文档型数据库,它在现代应用程序开发中扮演着重要的角色,特别是在处理大量非结构化数据时。针对"mongodb Windows7 64位"这个主题,我们将深入探讨MongoDB在Windows 7 64位操作...
`mongodb.dll`是MongoDB数据库系统在Windows平台上运行所必需的一个动态链接库(DLL)文件,它包含了MongoDB客户端和服务器所需的关键功能。 在Windows操作系统中,`.dll`文件是一种共享库,用于存储程序执行时需要...
在Web开发领域,Node.js以其高效、非阻塞I/O的特性受到了广泛欢迎,而MongoDB作为一款强大的NoSQL数据库,与Node.js结合构建Web应用成为了许多开发者的首选。本篇文章将深入探讨“node+mongodb 建站攻略(一期)”中...
一、安装 MongoDB 首先,我们需要配置 MongoDB 的 yum 源,创建 yum 源文件 `/etc/yum.repos.d/mongodb-org-3.4.repo`,添加以下内容: ``` [mongodb-org-3.4] name=MongoDB Repository baseurl=...
Centos7下安装MongoDB是指在Centos7操作系统中安装和配置MongoDB数据库的过程。MongoDB是一个基于分布式文件存储的NoSQL数据库,由C++语言编写,运行稳定,性能高旨在为 WEB 应用提供可扩展的高性能数据存储解决方案...
MongoDB 是一个高性能、分布式、开源的文档型数据库系统,被广泛应用于Web应用程序、移动应用后端、大数据分析以及物联网(IoT)等场景。它以其灵活的数据模型、高可用性和可扩展性著称,是NoSQL数据库领域的代表之一...
在提供的压缩包文件名`mongodb-linux-x86_64-3.4.7`中,`3.4.7`表示这是MongoDB的3.4系列的一个版本,该版本在2017年发布,带来了诸多性能优化和新特性。64位(x86_64)说明该版本适用于64位的Linux操作系统。 安装...