首页 > 其他 > 详细

MongoMongo简介

时间:2015-10-28 12:44:21      阅读:305      评论:0      收藏:0      [点我收藏+]

简介

MongMongo是一个用Java写的ODM框架,使得对MongoDB的操作更加便捷。

MongoMongo努力为Java开发者提供类似于ActiveORM 或者 Hibernate的操作API,并且保留了MongoDB的schemaless,document-based 设计,动态查询,原子修改操作等特性。当然你可以很方便的绕开MongoMongo而使用Java Driver 原生提供的功能。

示例代码

public class Blog extends Document {  
    static {  
        storeIn("blogs");                  
        hasManyEmbedded("articles", new Options(map(  
                Options.n_kclass, Article.class  
        )));  
        //create index  
        index(map("blogTitle", -1), map(unique,true));  
        //validate uerName field  
        validate("userName",map(length,map(  
                minimum,5  
        )));  

    }  
    //association related  
    public AssociationEmbedded articles() {throw new AutoGeneration();}  
    private String userName;  
    private String blogTitle;  
}  

public class Article extends Document {  
    static {          
        belongsToEmbedded("blog", new Options(map(  
                Options.n_kclass, Blog.class  
        )));  
    }  
    public AssociationEmbedded blog() {throw new AutoGeneration();}  
    private String title;  
    private String body;  
}  

public class Usage{  
  public static void main(String[] args){  

     Blog blog = Blog.where(map("userName","sexy java")).in(map("id",list(1,2,3))).singleFetch();  
     blog.articles().build(map("title","i am title","body","i am body"));  
     blog.save();  
  }  

}  
从上面代码中能够学习到关联,存储,创建索引,设置别名等操作都简单的在static 块中调用一个函数即可实现。

和Spring-data对比

Spring-data的写法为
public static void main( String[] args )  
   {  
       MongoOperations mongoOps = new MongoTemplate(new Mongo(), "mydb");  
       Person person = new Person();  
       person.setName("Joe");  
       person.setAge(10);  
       mongoOps.insert(person);  
       log.info(mongoOps.findOne(new Query(Criteria.where("name").is("Joe")), Person.class));  
   }  

而MongoMongo写法为
public static void main( String[] args )  
 {  
     Person person =  Person.create(map("name","Joe","age",34));  
     person.save();  
     log.info(Person.where(map("name","Joe")).singleFetch());   
 } 
从上面能够看出Spring-dat为了构造查询串引入Criteria对象,为了进行查询引入Query对象,查询时还要申明Person对象等,而MongoMongo写的比较简单而且清晰。

总结

针对MongoDB非关系型数据库的操作框架有很多,在项目中也可以选择合适项目的比较关系,通过对比之后单独使用MongoMongo在代码易用性和清晰度上占优势,而其他的可能和其他框架集成上有优势,所以需要用到的时候做出正确的判断就可以了。

版权声明:本文为博主原创文章,未经博主允许不得转载。

MongoMongo简介

原文:http://blog.csdn.net/lfsf802/article/details/49466929

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!