高可用mongodb集群(分片+副本):性能测试
https://developer.aliyun.com/article/1047466
百万级高并发mongo集群性能数十倍提升优化实践(上)
https://zhuanlan.zhihu.com/p/265375787
MongoDB 的存储结构是什么?
Mongo集群
MongoDB中的分片是什么?
在多台计算机上存储数据记录的过程称为分片。这是一种MongoDB方法,可以满足数据增长的需求。它是数据库或搜索引擎中数据的水平分区。每个分区称为分片或数据库分片。
MongoDB中支持过期
常用操作表达式
命令示例
// 查询
db.collection.find({ <query> })
// 聚合查询
db.collection.aggregate([
{ $match: { <query> } },
{ $group: { _id: "$<field>", count: { $sum: 1 } } }
])
常用操作
$and
$not
$or
$cmp
$eq
$gt
$gte
$lt
$lte
$ne
$avg
$count
$max
$min
$sum
$top
$match
$group
MongoDB 支持多种类型的索引,
包括单字段索引、复合索引、多键索引、哈希索引、文本索引、 地理位置索引等,每种类型的索引有不同的使用场合。
单字段索引: 建立在单个字段上的索引,索引创建的排序顺序无所谓,MongoDB 可以头/尾开始遍历。
复合索引: 建立在多个字段上的索引,也可以称之为组合索引、联合索引。
多键索引:MongoDB 的一个字段可能是数组,在对这种字段创建索引时,就是多键索引。MongoDB 会为数组的每个值创建索引。就是说你可以按照数组里面的值做条件来查询,这个时候依然会走索引。
哈希索引:按数据的哈希值索引,用在哈希分片集群上。
文本索引: 支持对字符串内容的文本搜索查询。文本索引可以包含任何值为字符串或字符串元素数组的字段。一个集合只能有一个文本搜索索引,但该索引可以覆盖多个字段。MongoDB 虽然支持全文索引,但是性能低下,暂时不建议使用。
地理位置索引: 基于经纬度的索引,适合 2D 和 3D 的位置查询。
唯一索引:确保索引字段不会存储重复值。如果集合已经存在了违反索引的唯一约束的文档,则后台创建唯一索引会失败。
TTL 索引:TTL 索引提供了一个过期机制,允许为每一个文档设置一个过期时间,当一个文档达到预设的过期时间之后就会被删除。
MongoDB 的复合索引遵循左前缀原则