42、MongoDB设计模式、反模式及二进制数据存储指南

MongoDB设计模式、反模式及二进制数据存储指南

1. 补偿驱动策略与事务处理

对于长时间运行的多步骤事务,补偿驱动策略几乎是必要的。例如,订单的授权、发货和取消的整个过程就需要这样的策略。即使是具有完整事务语义的关系型数据库管理系统(RDBMS),在处理这类事务时也必须实施类似的策略。虽然某些应用程序对多对象ACID事务的需求难以避免,但通过正确的模式,MongoDB也能承担一定的事务处理工作,并支持应用程序所需的事务语义。

2. 局部性与预计算

MongoDB常被用作分析数据库,许多用户会将分析数据存储在其中。原子增量和丰富文档的结合似乎效果最佳。以下是一个表示每月每天页面总浏览量以及整月总浏览量的文档示例:

{ 
    base: "org.mongodb", 
    path: "/",
    total: 99234,
    days: {
        "1": 4500,
        "2": 4324,
        "3": 2700,
        "4": 2300,
        "5": 0
    }
}

可以使用 $inc 操作符对当天和当月的总数进行简单的针对性更新:

use stats-2011
db.sites-nov.update({ base: "org.mongodb", path: "/" },
    { $inc: {total: 1, "days.5": 1 }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值