一、mongoDB
mongoDB是目前最接近关系型数据库的一种Key-value 数据库。它支持基本的增删改查,也支持索引;但不支持事务和join操作。
mongodb和传统的关系型数据的差别,体现在设计阶段,就是设计思路的转变。使用mongodb需要更多的关注实际的业务,要考虑如何组织数据能让业务使用的更方便合理;而关系型数据库由于已经有了很多比较明确的设计方式,使用起来有据可循。
mongodb中的一些概念和传统关系型数据库的比较
mongodb rmdb
database database
collection table
document record
index index
mongodb服务器使用C语言开发的,提供了多种常用语言的编程接口,这里以Java做示例。
二、mongdoDB的更新操作
mongdb在传统的更新操作之外,还支持原子操作和就地更新(in-place update)。
java的update接口在类DBCollection中实现:
public abstract void update( DBObject q , DBObject o , boolean upsert , boolean multi ) throws MongoException ;
上述方法签名,包含了一个upsert的概念,upsert可以理解为,更新一个document,如果该document不存在,那么就插入一个新的。
q 用来找出要更新的旧对象
o 要做的更新操作
upsert 是否使用upsert的方式
multi 当q找到多个对象时,multi=true则全都更新,=false(缺省的)则只更新第一个
三、morphia及其对mongdoDB更新操作的支持
morphia是一个针对于mongodb的轻量级的ORM(Morphia is a lightweight type-safe library for mapping your Java objects to/from MongoDB)。目前其官网(http://code.google.com/p/morphia/)上发布的是0.94的SNAPSHOT版。
前面所述mongodb的更新方式,morphia给予了支持,具体见下面代码段:
private <T> UpdateResults<T> update(Query<T> query, DBObject u, boolean createIfMissing, boolean multi) {
DBCollection dbColl = getCollection(((QueryImpl<T>) query).getEntityType());
DBObject q = ((QueryImpl<T>) query).getQueryObject();
if (q == null)
q = new BasicDBObject();
dbColl.update(q, u, createIfMissing, multi);
DBObject dbObj = dbColl.getDB().getLastError();
return new UpdateResults<T>(dbObj);
}
上述代码在DatastoreImpl中,DatastoreImpl实现了Datastore接口,这个接口是morphia的核心接口,对外提供数据库的各种操作。
分享到:
相关推荐
MongoDB是一种流行的开源、分布式文档数据库,常用于处理大规模数据。在Java开发中,Morphia是一个优秀的对象数据映射(ODM...通过学习和实践,你将能够充分利用Morphia框架的强大功能,实现高效、灵活的MongoDB操作。
【Morphia 操作 MongoDB 知识点详解】 ...通过 Morphia,你可以更便捷地进行 MongoDB 的增删查改操作,同时享受到 Java 语言的强大和灵活性。它简化了数据模型的设计,使得数据库操作更加直观和高效。
现在,你可以使用 Morphia 的 API 来保存、查询、更新和删除数据。例如,保存一个 `User` 实例: ```java User user = new User(); user.setName("张三"); user.setEmail("zhangsan@example.com"); datastore.save...
此外,Morphia还支持更新、删除等操作,以及复杂的查询表达式和聚合操作。 【Morphia的优势】 1. 简化的API:Morphia提供了易于使用的Java对象映射,使得处理MongoDB数据变得简单。 2. 自动类型转换:Morphia能自动...
Morphia 是一个 Java ORM(对象关系映射)库,用于简化 MongoDB 的数据操作,将数据模型与数据库文档之间的转换自动化。在本文中,我们将深入探讨如何使用 Morphia 进行 MongoDB 的操作。 首先,为了在 Java 项目中...
后续提交放在https://github.com/zdsiyan/watermelon 上, 用eclipse导入该工程需安装m2eclipse,jetty等查件. 另外.settings下的org.eclipse.wst.common.component文件如下: ...</project-modules>
1. **连接MongoDB**:使用`MongoClient`和`MongoDatabase`,Morphia可以建立到MongoDB服务器的连接,并选择要操作的数据库。 2. **数据存取**:通过`Datastore`接口,我们可以执行CRUD(创建、读取、更新、删除)...
morphia基于mongodb的基本开发
Spring Data MongoDB允许开发者利用Spring的依赖注入和事务管理特性,同时通过Repository接口实现对MongoDB的操作,如查询、更新和删除等。使用`@Document`注解标记实体类,表明该类对应MongoDB的一个集合,而`@Id`...
MongoDB是面向文档的开源数据库,Morphia是面向MongoDB 的类型安全的对象映射库。本文解释了在文档和对象之间进行映射的好处,并演示了如何使用Morphia来实现这个功能。然后演示了如何持久保存、加载、删除和查询...
标题中的“morphia.jar”和“mongo.jar”指的是两个与MongoDB数据库操作相关的Java库文件。MongoDB是一个流行的开源、分布式文档型数据库,而Morphia则是Java开发人员用来操作MongoDB的一个对象数据映射(ODM)框架...
3. **查询和更新操作**:Morphia提供了一种简洁的API,允许开发者通过构建查询和更新对象来执行数据库操作。这使得开发者能够灵活地根据条件进行查询,或者对数据进行修改。 4. **索引创建**:为了提高查询性能,...
它自动处理数据的序列化和反序列化,简化了数据库查询和操作,以及对象的生命周期管理。 使用Morphia时,首先需要配置Datastore,这是Morphia的主要接口,用于与MongoDB进行通信。你可以指定MongoClient实例、...
其次,"java调用mongodb的pdf文档"将深入到Java开发者如何在应用程序中集成和操作MongoDB。Java驱动程序是MongoDB官方支持的多种语言驱动之一,提供了一种方便的方式来执行CRUD(创建、读取、更新、删除)操作。这份...
结合Spring Data MongoDB,我们可以利用Spring的依赖注入和配置能力,使数据库操作更加简洁和灵活。然而,这个示例主要展示了基础的Spring Data MongoDB配置,实际使用Morphia还需要添加相应的注解和配置。
首先,为了连接到MongoDB,你需要在项目中引入MongoDB的Java驱动程序和相关的ORM(对象关系映射)库。Morphia是一个常见的选择,它是Google开发的一个用于MongoDB的数据映射框架,简化了在Java应用中操作MongoDB的...
Spring MVC、Morphia 和 MongoDB 是三个在Java开发中常用于构建Web应用程序的关键技术。Spring MVC 是Spring框架的一部分,提供了一种模型-视图-控制器(MVC)架构模式,帮助开发者组织和处理Web应用的业务逻辑。...
在传统的SQL世界里,ORM框架如Hibernate简化了与数据库的交互,而在NoSQL领域,Morphia扮演着相同的角色,使得开发者能够以面向对象的方式操作MongoDB数据,而无需直接编写低级的MongoDB查询语言。 **1. MongoDB和...
中断更改:play-morphia 1.5.0将morphia库更新为org.mongodb.morphia 0.107。 请在您的应用程序中将文本从“ com.google.code.morphia”替换为“ org.mongodb.morphia” PlayMorphia概述 PlayMorphia模块一个功能...