`
mousehouse
  • 浏览: 30531 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

mongodb的更新和morphia的相关操作

阅读更多

一、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的核心接口,对外提供数据库的各种操作。

 

 

0
0
分享到:
评论

相关推荐

    使用Morphia框架操作mongodb

    MongoDB是一种流行的开源、分布式文档数据库,常用于处理大规模数据。在Java开发中,Morphia是一个优秀的对象数据映射(ODM...通过学习和实践,你将能够充分利用Morphia框架的强大功能,实现高效、灵活的MongoDB操作。

    Morphia操作MongoDB

    【Morphia 操作 MongoDB 知识点详解】 ...通过 Morphia,你可以更便捷地进行 MongoDB 的增删查改操作,同时享受到 Java 语言的强大和灵活性。它简化了数据模型的设计,使得数据库操作更加直观和高效。

    使用 Morphia 和 MongoDB 实现域模型持久性(ZZ)

    现在,你可以使用 Morphia 的 API 来保存、查询、更新和删除数据。例如,保存一个 `User` 实例: ```java User user = new User(); user.setName("张三"); user.setEmail("zhangsan@example.com"); datastore.save...

    Morphia 操作 MongoDB.docx

    此外,Morphia还支持更新、删除等操作,以及复杂的查询表达式和聚合操作。 【Morphia的优势】 1. 简化的API:Morphia提供了易于使用的Java对象映射,使得处理MongoDB数据变得简单。 2. 自动类型转换:Morphia能自动...

    Morphia 操作 MongoDB.pdf

    Morphia 是一个 Java ORM(对象关系映射)库,用于简化 MongoDB 的数据操作,将数据模型与数据库文档之间的转换自动化。在本文中,我们将深入探讨如何使用 Morphia 进行 MongoDB 的操作。 首先,为了在 Java 项目中...

    mongodb+springmvc+morphia

    后续提交放在https://github.com/zdsiyan/watermelon 上, 用eclipse导入该工程需安装m2eclipse,jetty等查件. 另外.settings下的org.eclipse.wst.common.component文件如下: ...&lt;/project-modules&gt;

    Morphia和MongoDB学习总结<三>

    1. **连接MongoDB**:使用`MongoClient`和`MongoDatabase`,Morphia可以建立到MongoDB服务器的连接,并选择要操作的数据库。 2. **数据存取**:通过`Datastore`接口,我们可以执行CRUD(创建、读取、更新、删除)...

    morphia基于mongodb的基本开发

    morphia基于mongodb的基本开发

    spring-mongodb-morphia:springdata-mongo morphia mongodb 学习

    Spring Data MongoDB允许开发者利用Spring的依赖注入和事务管理特性,同时通过Repository接口实现对MongoDB的操作,如查询、更新和删除等。使用`@Document`注解标记实体类,表明该类对应MongoDB的一个集合,而`@Id`...

    使用Morphia和MongoDB实现域模型持久性

    MongoDB是面向文档的开源数据库,Morphia是面向MongoDB 的类型安全的对象映射库。本文解释了在文档和对象之间进行映射的好处,并演示了如何使用Morphia来实现这个功能。然后演示了如何持久保存、加载、删除和查询...

    morphia.jar和mongo.jar

    标题中的“morphia.jar”和“mongo.jar”指的是两个与MongoDB数据库操作相关的Java库文件。MongoDB是一个流行的开源、分布式文档型数据库,而Morphia则是Java开发人员用来操作MongoDB的一个对象数据映射(ODM)框架...

    morphia-mongodb-examples:用于MongoDB的Morphia ODM的示例

    3. **查询和更新操作**:Morphia提供了一种简洁的API,允许开发者通过构建查询和更新对象来执行数据库操作。这使得开发者能够灵活地根据条件进行查询,或者对数据进行修改。 4. **索引创建**:为了提高查询性能,...

    morphia所用到的jar包

    它自动处理数据的序列化和反序列化,简化了数据库查询和操作,以及对象的生命周期管理。 使用Morphia时,首先需要配置Datastore,这是Morphia的主要接口,用于与MongoDB进行通信。你可以指定MongoClient实例、...

    mongoDB相关教程以及windows版mongodb

    其次,"java调用mongodb的pdf文档"将深入到Java开发者如何在应用程序中集成和操作MongoDB。Java驱动程序是MongoDB官方支持的多种语言驱动之一,提供了一种方便的方式来执行CRUD(创建、读取、更新、删除)操作。这份...

    Mongo的ORM框架的学习Morphia

    结合Spring Data MongoDB,我们可以利用Spring的依赖注入和配置能力,使数据库操作更加简洁和灵活。然而,这个示例主要展示了基础的Spring Data MongoDB配置,实际使用Morphia还需要添加相应的注解和配置。

    play1.x连接mongodb

    首先,为了连接到MongoDB,你需要在项目中引入MongoDB的Java驱动程序和相关的ORM(对象关系映射)库。Morphia是一个常见的选择,它是Google开发的一个用于MongoDB的数据映射框架,简化了在Java应用中操作MongoDB的...

    spring MVC morphia mongo 整合的例子

    Spring MVC、Morphia 和 MongoDB 是三个在Java开发中常用于构建Web应用程序的关键技术。Spring MVC 是Spring框架的一部分,提供了一种模型-视图-控制器(MVC)架构模式,帮助开发者组织和处理Web应用的业务逻辑。...

    Morphia一个nosql的ORM框架

    在传统的SQL世界里,ORM框架如Hibernate简化了与数据库的交互,而在NoSQL领域,Morphia扮演着相同的角色,使得开发者能够以面向对象的方式操作MongoDB数据,而无需直接编写低级的MongoDB查询语言。 **1. MongoDB和...

    play-morphia:通过Morphia提供mongodb访问服务到play.db.Model

    中断更改:play-morphia 1.5.0将morphia库更新为org.mongodb.morphia 0.107。 请在您的应用程序中将文本从“ com.google.code.morphia”替换为“ org.mongodb.morphia” PlayMorphia概述 PlayMorphia模块一个功能...

Global site tag (gtag.js) - Google Analytics