`

mongodb 盲狗在路上 (一)

阅读更多

 

 我这边的查询场景是数据量大,范围查询,对一致性没有太高的要求,无事务。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

分享到:
评论

相关推荐

    在linux下配置 和启动mongodb

    "MongoDB 在 Linux 下的配置和启动" MongoDB 是一个流行的 NoSQL 数据库,广泛应用于大数据存储和实时数据处理。在 Linux 环境下,配置和启动 MongoDB 需要遵循一定的步骤,本文将详细介绍在 Linux 下配置和启动 ...

    linux安装mongodb教程

    Linux 安装 MongoDB 教程是指在 Redhat Linux 4 系统下安装 MongoDB 32 位版本的详细步骤指导。MongoDB 是一个文件数据库,其他 Linux 系统下安装也是类似的。 知识点 1:下载 MongoDB 在安装 MongoDB 之前,需要...

    基于c#的Mongodb帮助类源码 含一个分页效率测试

    总的来说,这个C# MongoDB帮助类源码提供了一种简洁的方式来处理MongoDB数据库操作,同时包含了一个有价值的性能测试,对于理解和优化MongoDB在C#环境中的分页策略非常有帮助。通过深入学习和实践,你可以更好地掌握...

    MongoDB入门指南.pdf

    MongoDB中的Journaling是指将数据库的操作日志记录到磁盘上,以便在系统崩溃时可以快速地恢复数据。MongoDB的原子性和事务机制可以确保数据的一致性。 MongoDB的应用场景包括: 1.大数据处理:MongoDB可以处理...

    mongodb-测试数据

    在“quick-mongo-atlas-datasets-master”这个压缩包中,我们可以推测这可能是一个与MongoDB Atlas相关的项目。MongoDB Atlas是MongoDB公司提供的云数据库服务,它允许用户在AWS、Azure和Google Cloud上轻松部署、...

    mongodb c#驱动最新驱动mongodb.driver.dll 版本2.12.0-beta1

    SharpCompress.dll 是一个开源的 .NET 库,支持多种压缩格式如 ZIP、GZIP、TAR 等,可能在 MongoDB 驱动中用于读取或写入压缩的归档文件。 mongocrypt.dll 是 MongoDB 客户端加密库,用于自动加密和解密 MongoDB ...

    geoserver发布mongodb矢量数据地图服务.docx

    MongoDB是一款NoSQL数据库,能够存储大量的矢量数据。本文将介绍如何使用Geoserver将MongoDB矢量数据发布为地图服务。 一、Geoserver概述 Geoserver是基于Java开发的一款开源GIS服务器,能够处理大量的空间数据,...

    mongodb7.0.0安装包

    此“mongodb7.0.0安装包”是针对Windows 64位操作系统的一个版本,适用于需要在Windows环境中部署MongoDB服务的用户。 在安装MongoDB 7.0.0之前,你需要确保你的计算机满足以下硬件和软件要求: 1. 操作系统:...

    MongoDB应用设计模式

    资源名称:MongoDB应用设计模式内容简介:无论是在构建社交媒体网站,还是在开发一个仅在内部使用的企业应用程序,《MongoDB应用设计模式》展示了MongoDB需要解决的商业问题之间的连接。你将学到如何把MongoDB设计...

    mongodb Windows7 64位

    MongoDB是一款开源、高性能、无模式的文档型数据库,它在现代应用程序开发中扮演着重要的角色,特别是在处理大量非结构化数据时。针对"mongodb Windows7 64位"这个主题,我们将深入探讨MongoDB在Windows 7 64位操作...

    node+mongodb 建站攻略(一期)代码

    在Web开发领域,Node.js以其高效、非阻塞I/O的特性受到了广泛欢迎,而MongoDB作为一款强大的NoSQL数据库,与Node.js结合构建Web应用成为了许多开发者的首选。本篇文章将深入探讨“node+mongodb 建站攻略(一期)”中...

    mongodb.dll 下载.zip

    `mongodb.dll`是MongoDB数据库系统在Windows平台上运行所必需的一个动态链接库(DLL)文件,它包含了MongoDB客户端和服务器所需的关键功能。 在Windows操作系统中,`.dll`文件是一种共享库,用于存储程序执行时需要...

    mongodb数据库jar包

    MongoDB是一个流行的开源、分布式文档型数据库,设计用于处理大量数据并提供高可用性和高性能。在Java应用程序中,为了与MongoDB进行交互,我们需要使用Java MongoDB驱动程序。这个压缩包包含的就是Java连接MongoDB...

    MongoDB实验 - .docx

    一、安装 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是指在Centos7操作系统中安装和配置MongoDB数据库的过程。MongoDB是一个基于分布式文件存储的NoSQL数据库,由C++语言编写,运行稳定,性能高旨在为 WEB 应用提供可扩展的高性能数据存储解决方案...

    mongodb-4.0.4_windows

    MongoDB 是一个高性能、分布式、开源的文档型数据库系统,被广泛应用于Web应用程序、移动应用后端、大数据分析以及物联网(IoT)等场景。它以其灵活的数据模型、高可用性和可扩展性著称,是NoSQL数据库领域的代表之一...

    mongodb linux 64位安装包

    在提供的压缩包文件名`mongodb-linux-x86_64-3.4.7`中,`3.4.7`表示这是MongoDB的3.4系列的一个版本,该版本在2017年发布,带来了诸多性能优化和新特性。64位(x86_64)说明该版本适用于64位的Linux操作系统。 安装...

    spring-data使用mongodbTemplate对MongoDB进行读写操作

    这个库是Spring Data框架的一部分,旨在简化数据访问层的实现,尤其在使用NoSQL数据库如MongoDB时。MongoDBTemplate是Spring Data MongoDB的核心组件,它提供了丰富的API来执行常见的数据库操作。 首先,让我们深入...

Global site tag (gtag.js) - Google Analytics