`

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

分享到:
评论

相关推荐

    MongoDB笔记.docx

    1、MongoDB一对一关系型 3 2、MongoDB一对多关系型 4 3、MongoDB多对多关系型 4 三、创建数据库(mongodb_test) 4 四、MongoDB得增删改查(crud) 4 1、MongoDB查询 4 2、order和投影查询 5 3、MongoDB增加 6 4、...

    MongoDB应用设计模式

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

    mongodb随机获取一条记录实例

    介绍php7.0以上使用mongdb的基本方法,并提供mongodb随机获取一条记录的测试实例。

    MongoDB教程基础入门

    教程名称:MongoDB教程基础入门 课程目录:【】MongoDB教程基础入门-代码【】MongoDB教程基础入门01第一讲上【】MongoDB教程基础入门02第一讲下【】MongoDB教程基础入门03第二讲上【】MongoDB教程基础入门04第二讲...

    如何安装MongoDB 如何使用MongoDB

    本课程是一套关于MongoDB应用开发的实战性教程,名为《深入浅出MongoDB应用实战开发(基础、开发指南、系统管理、集群及系统架构)》,教程侧重于讲解MongoDB的常用特性及高级特性,从实际开发的角度出发对MongoDB...

    基于MongoDb的图书管理系统.rar

    代码不是很完美,基本实现图书管理系统的增删改查等基本功能,目前尚有一处缺陷未解决——在查询后只能在控制台看到结果,没有反馈到界面上,有兴趣的朋友可以加以修改,相信这是一个不错的Java+MongoDb的课程设计...

    基于MongoDB的日志系统Mongodb-Log.zip

    mongodb-log 是一个基于MongoDB的Python日志系统。 MongoDB 的 Capped Collection是一个天生的日志系统,MongoDB自己的oplog就是用它来存储的,Capped Collection的特点是可以指定Collection的大小,当记录总大小...

    01MongoDB第一讲上A

    01MongoDB第一讲上A

    MongoDB4.2分片及副本集群搭建

    MongoDB4.2分片及副本集群搭建 MongoDB集群 MongoDB分片 MongoDB副本 MongoDB副本集群

    Linux安装mongodb客户端

    sudo vim /etc/yum.repos.d/mongodb-org-4.2.repo 写入: [mongodb-org-4.2] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.2/x86_64/ gpgcheck=1 enabled=1 gpg...

    MongoDB(mongodb-org-server_5.0.4_amd64.deb)

    MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系...

    MongoDB(mongodb-src-r5.0.4.tar.gz)

    MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系...

    五、MongoDB 学习PPT

    MongoDB 学习PPT

    MongoDB图形化管理工具 MongoDB Compass

    MongoDB图形化管理工具 MongoDB Compass

    php-mongodb的扩展包

    php-mongodb的扩展包,MongoDB [2] 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据...

    【BAT必备】MongoDB面试题

    【BAT必备】MongoDB面试题【BAT必备】MongoDB面试题【BAT必备】MongoDB面试题【BAT必备】MongoDB面试题【BAT必备】MongoDB面试题【BAT必备】MongoDB面试题【BAT必备】MongoDB面试题【BAT必备】MongoDB面试题【BAT...

    mongodb安装包

    mongodb,下载mongodb,mongodb,mongodb,mongodb,mongodb,mongodb,mongodb,mongodb,mongodb,mongodb,mongodb,mongodb,mongodb,

    MongoDB Community(mongodb-linux-aarch64-ubuntu1804-5.0.8.tgz)

    MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系...

Global site tag (gtag.js) - Google Analytics