GORM 的另一种风格:MongoDB

工程 | Graeme Rocher | 2010 年 11 月 15 日 | ...

我们让 GORM 普及到 NoSQL 存储的征程今天又达到了一个里程碑,我们很高兴地宣布 GORM for MongoDB

MongoDB 是一个文档数据库,它弥合了键值存储(快速且高度可扩展)和传统 RDBMS 系统(提供丰富的查询和深入的功能)之间的差距。

RedisGemfire 插件一样,GORM for MongoDB 完全支持 CRUD 操作

def person = new Person(name:"Fred", age: 45)
person.save()

person = Person.get(person.id)
assert person != null

person.delete()

assert Person.get(person.id) == null

使用 动态查找器 进行丰富的查询

def fred = Person.findByName("Fred")
def adults = Person.findAllByAgeGreaterThan(18)
def teenagers = Person.findAllByAgeBetween(13, 18)
def children = Person.findAllByAgeLessThan(13)

使用 标准查询 处理复杂的查询

def results = Person.withCriteria {
    like('name', 'F%')
    gt('age', 18)
}

使用 命名查询 支持可重用查询

class Person {
   String name
   int age

   static namedQueries = {
         adults { gt 'age', 18 }
         childrenStartingWithF {
              lt 'age', 18
              like 'name', 'F%'
         }
   }
}

Person.adults.list()
Person.adults.findByName("Fred")
Person.childrenStartingWithF.count()

所有这些都允许访问底层 Mongo 驱动程序

def fred = Person.collection.findOne(name:"Fred")

我们准备了一个简短的截屏视频,演示 GORM for MongoDB 的实际应用

GORM for MongoDB Screencast

您可以查看 GORM for MongoDB 插件的完整文档,了解更多关于安装、配置和使用 API 的信息。

GORM for MongoDB 构建在与 Redis 和 Gemfire 支持 相同的代码库之上,说到这里,我们对即将到来的社区代码贡献感到非常兴奋,包括对 Java 内容存储库 (JCR) 和 Riak (一个具有良好 REST API 的可扩展键/值数据存储) 的支持。

我们仍然热衷于与社区合作,在其他数据存储之上构建对 GORM 实现的支持,如果您有兴趣提供帮助,请在 Grails 邮件列表 上给我们留言。

尽情享受吧!

获取 Spring 新闻通讯

与 Spring 新闻通讯保持联系

订阅

更进一步

VMware 提供培训和认证,以加速您的进步。

了解更多

获得支持

Tanzu Spring 在一个简单的订阅中提供对 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件。

了解更多

即将到来的活动

查看 Spring 社区的所有即将到来的活动。

查看全部