MongoDB orm框架的注意事项及简单使用

 更新时间:2021年06月19日 14:18:18   作者:孙来疯  
MongoDB官方提供的orm的轻量级封装的 zfoo orm 框架,只对官方提供的进行了简单的封装,还做了一些官方不支持的语法校验。本文介绍了该框架的注意事项及简单使用

首先spring自带了mongodb的orm,spring data mongodb,但是这个框架非常难用,最令人抓狂的是每个文档都要带一个 _class 字段,因为这个是string的,所以占用不少空间,而且去除也比较麻烦。故而使用 zfoo orm 框架

Ⅰ. 简介

基于MongoDB的orm框架,提供POJO对象和MongoDB数据库之间的映射

Ⅱ. 注意事项

  • POJO对象的属性必须提供get和set方法,否则无法映射
  • 不支持泛型
  • 如果不想映射某属性,直接加上transient关键字
  • 目前支持基本数据属性(byte,short,int,long,float,double,boolean),字符串String,List,Set集合属性的映射,不支持Map
  • 数据库主键能用整数尽量用整数,因为MongoDB默认的主键是一个字符串,比较占空间
  • 数据库使用自研的orm框架,比如一个实体类UserEntity,映射到数据库中的集合为user,首字母小写,去掉Entity
  • 基于 caffeine 的高性能数据缓存
  • 语法校验,如对没有加上get和set的字段自动语法提示

Ⅲ. 使用方法

1. IAccessor接口,为数据访问接口

  • 插入数据到数据库,会以对象的id()方法的返回值作为主键
OrmContext.getAccessor().insert(obj)
  • 删除数据库中的数据,会以对象的id()方法的返回值作为查找关键字,删除以这个id()为主键的数据
OrmContext.getAccessor().delete(obj);
  • 修改数据库中的数据
OrmContext.getAccessor().update(obj);

2. IQuery接口,为数据复杂查询接口

3. 缓存使用方法

例如有下列配置

<orm:config id="config" entity-package="com.zfoo.orm.**.entity">

    <orm:host database="test" user="" password="">
        <orm:address name="server0" url="127.0.0.1:27017"/>
    </orm:host>

    <!-- 缓存策略 -->
    <orm:caches>
        <orm:cache strategy="ten" size="10" expire-millisecond="600000"/>
        <orm:cache strategy="hundred" size="100" expire-millisecond="600000"/>
        <orm:cache strategy="thousand" size="1000" expire-millisecond="600000"/>
        <orm:cache strategy="threeThousand" size="3000" expire-millisecond="600000"/>
        <orm:cache strategy="tenThousand" size="10000" expire-millisecond="600000"/>
    </orm:caches>

    <!-- 持久化策略 -->
    <orm:persisters>
            <orm:persister strategy="cronDefault" type="cron" config="0,30 * * * * ?"/>
            <orm:persister strategy="cron3s" type="cron" config="0/3 * * * * ?"/>
            <orm:persister strategy="cron15s" type="cron" config="0/15 * * * * ?"/>
            <orm:persister strategy="cron30s" type="cron" config="0/30 * * * * ?"/>
            <orm:persister strategy="cron1m" type="cron" config="0 0/30 * * * ?"/>
            <orm:persister strategy="time30s" type="time" config="30000"/>
        </orm:persisters>
</orm:config>

有下列注解

@EntityCaches(cacheStrategy = "tenThousand", persister = @Persister("time30s"))
public class UserEntity implements IEntity<Long> {
}
  • database表示操作哪个数据库
  • address表示数据库的地址,支持分片的配置
  • caches中的strategy表示一个缓存的策略,即将数据库中的数据先读入Orm中的EntityCaches缓存,如hundred这个策略表示,缓存数据库中1000条数据,10分钟过期
  • persisters中的strategy表示一个持久化的策略,如3s这个策略表示,将EntityCaches中的缓存数据每3s写入到数据库中一次,即使中途宕机,也只损失3秒的数据
  • EntityCaches这个注解表示将会被Orm管理,使用hundred策略,缓存的持久化策略为3s

Ⅳ. 教程

test下中包含了所有增删改查的教程,运行之前请先安装MongoDB

以上就是MongoDB orm框架的注意事项及简单使用的详细内容,更多关于MongoDB orm框架的资料请关注脚本之家其它相关文章!

相关文章

  • MongoDB  数据模型的设计模式及优缺点

    MongoDB  数据模型的设计模式及优缺点

    这篇文章主要介绍了MongoDB  数据模型的设计模式,在实际开发中,大多数性能问题都可以追溯到糟糕的模型设计,官方也提供分享过文档模型设计的进阶技巧,这里简单翻译记录一下,需要的朋友可以参考下
    2022-12-12
  • mongoDB4.2.8备份恢复与导出导入(推荐)

    mongoDB4.2.8备份恢复与导出导入(推荐)

    这篇文章主要介绍了mongoDB4.2.8备份恢复与导出导入的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • MongoDB 常用的数据类型和基本操作

    MongoDB 常用的数据类型和基本操作

    这篇文章主要介绍了MongoDB 常用的数据类型和基本操作,帮助大家更好的理解和学习使用MongoDB数据库,感兴趣的朋友可以了解下
    2021-03-03
  • MongoDB 索引创建和查询优化的方法

    MongoDB 索引创建和查询优化的方法

    这篇文章主要介绍了MongoDB 索引创建和查询优化的方法,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2024-07-07
  • 大数据环境下mongoDB为何要加索引浅析

    大数据环境下mongoDB为何要加索引浅析

    这篇文章主要给大家介绍了关于大数据环境下mongoDB为何要加索引的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用mongoDB具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-05-05
  • PHP库 查询Mongodb中的文档ID的方法

    PHP库 查询Mongodb中的文档ID的方法

    这篇文章主要介绍了PHP库 查询Mongodb中的文档ID的方法的相关资料,需要的朋友可以参考下
    2016-10-10
  • centos6.5中安装mongodb简明总结

    centos6.5中安装mongodb简明总结

    这篇文章主要介绍了centos6.5中安装mongodb简明总结,本文简单的总结了安装过程中的6个步骤,需要的朋友可以参考下
    2014-10-10
  • MongoDB聚合运算符$toBool详解

    MongoDB聚合运算符$toBool详解

    $toBool聚合运算符将指定的值转换为布尔类型boolean,这篇文章主要介绍了MongoDB聚合运算符:$toBool的相关知识,需要的朋友可以参考下
    2024-05-05
  • 把MongoDB作为循环队列的方法详解

    把MongoDB作为循环队列的方法详解

    这篇文章主要给大家介绍了关于把MongoDB作为循环队列的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • MongoDB学习笔记之分组(group)使用示例

    MongoDB学习笔记之分组(group)使用示例

    这篇文章主要介绍了MongoDB学习笔记之分组(group)使用示例,本文直接给出一组测试数据,然后练习分组的基本使用,需要的朋友可以参考下
    2015-07-07

最新评论