您的位置:首页 > 编程语言 > Go语言

MongoMongo简介

2015-10-28 12:04 405 查看

简介

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在代码易用性和清晰度上占优势,而其他的可能和其他框架集成上有优势,所以需要用到的时候做出正确的判断就可以了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mongodb