Mac上安装MongoDB

brew install mongodb,brew是个好东西,安装好之后得sudo mongod才能启动服务器,然后使用mongo客户端进行链接。

可视化工具

使用Robomongo,进入官网下载即可。

MongoDB特性

数据库

  • show dbs 命令可以显示所有数据的列表。
  • db 命令可以显示当前数据库对象或集合。
  • use命令,可以连接到一个指定的数据库或者创建数据库。

文档

文档是一组键值(key-value)对(即BSON)。MongoDB 的文档不需要设置相同的字段,并且相同的字段不需要相同的数据类型。

  • 文档中的键/值对是有序的。
  • 文档中的值不仅可以是在双引号里面的字符串,还可以是其他几种数据类型(甚至可以是整个嵌入的文档)。

集合

集合就是 MongoDB 文档组,类似于MySQL中的表,集合存在于数据库中,集合没有固定的结构,这意味着你在对集合可以插入不同格式和类型的数据,但通常情况下我们插入集合的数据都会有一定的关联性。

db.chunkstores.findOne() 查询该chunkstores集合中的一个文档

MongoDB链接字符串

mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]

索引

散列索引

散列索引维护索引字段值的散列。

散列索引通过使用散列分片键支持分片。基于散列的分片使用了一个字段的散列索引作为分片的键将你的分片集群的数据切割。

使用一个散列分片键来分片collection导致一个更加随机的数据分布。

db.collection.createIndex( { _id: "hashed" } )

MongoDB支持在任意单个字段上建立散列索引。散列函数展开嵌入的文档(documents)然后计算整个值的散列,但是它不支持multi-key的索引。

你不能在有散列索引字段上创建一个组合索引,或者是在散列索引上指定一个独一无二的约束。然而,你可以在同一个字段上创建一个散列索引和自增(自减)非散列索引。MongoDB将使用标量索引进行范围查询。