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

开源的Mongodb java client -- mango发布

阅读更多

Mango  ----   一个非常简单的操作mongodb的小工具,使用java语言,基于mongodb的java driver包。

 

其主要的灵感来自于Jongo 项目,这是一个非常有创意的工具,将mongodb shell编程扩展到了java语言包内。mango主要做的工作,是重写了Jongo的一些方法,使其更符合我们在开发中的需求,另外与spring相结合,将配置参数等记录在资源文件中进行管理,并适当的做了一些扩展。

 

新手上路

step 1  -- 配置

资源文件  driver.property

#database url ---> host:port
url=
user=
password=

#see mongoOptions.class in mongodb java driver
slaveOk=
connectionsPerHost=
minPoolsSize=
threadsAllowedToBlockForConnectionMultiplier=
maxWaitTime=
connectTimeout=
socketTimeout=
autoConnectRetry=
safe=

 

配置文件  spring.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="collection" class="org.mango.MangoCollection" init-method="init" destroy-method="close">
        <property name="mango">
            <ref bean="mango"/>
        </property>
        <property name="collection" value="test"/>
        <!-- there needs the full path of the model class , it's not a good idea , but I can't find a better way to solve this -->
        <property name="clazz" value="org.mango.Mazhiyuan"/>
    </bean>
    <bean id="mango" class="org.mango.Mango" init-method="init" destroy-method="close">
        <property name="driver">
            <ref bean="driver"/>
        </property>
    </bean>
    <bean id="driver" class="org.mango.MangoDriver" init-method="init" destroy-method="close">
        <property name="db" value="local"/>
        <property name="driver" ref = "config"/>
    </bean>
    <bean id="config" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
        <property name="location">
            <value>classpath:driver.properties</value>
        </property>
    </bean>
</beans>

 

资源文件主要是记录了mongodb的相关配置和mongodb的连接串,若是Replication模式,则以逗号分开,端口号一定要有。

spring配置文件,依次注册了MangoDriver,这个类加载配置项并初始化了数据库,MangoCollection只暴露给用户的client类,这个类需要要操作的mongodb collection和该collection对应的model类。

 

 

step 2 Model 类

model类最好继承与Madel类,虽然这是一个可选的条件,但强烈建议这样做,Madel类非常简单,只是含有一个ObjectsId来对应mongodb中的_id字段

 

step 3 启动

 

ApplicationContext context = new ClassPathXmlApplicationContext("classpath:spring.xml");
MangoCollection collection = (MangoCollection) context.getBean("collection");

 得到MangoCollection之后,就可以进行一系列的操作了

 

 

Mazhiyuan mazhiyuan = collection.findOne().as();
System.out.println(mazhiyuan.getName());

Mazhiyuan mazhiyuan = collection.findOne("{age:3}").as();

List<Mazhiyuan> mazhiyuans = collection.find("{age:3}").asList();

Iterable<Mazhiyuan> mazhiyuans = collection.find("{age:3}").as();

List<Mazhiyuan> mazhiyuans = collection.find("{age:3}").field("{age:0}").skip(10).sort("{age:1}").limit(10).asList();
 

 这些语句和mongodb shell的语言非常的类似,注意asList是返回List对象,而as方法返回的是Iterable对象

 

collection.update("{name: 'mzy1'}").with("{$inc: {age: 1}}");
collection.update("{name: 'mzy1'}").upsert().multi().with("{$inc: {age: 1}}");
collection.update("{name: 'mzy1'}").upsert().with("{$inc: {age: 1}}");
 

更新操作也是一样的

 

collection.save(new Mazhiyuan("mzy", 23));
collection.save("{name:'mzy',age:23}");

插入操作

 

 

collection.remove("{name: 'mzy'}");
collection.remove(new ObjectId("4c...e"));

删除操作

 

需要说明的是这些操作返回都是boolean类型,可以判断操作是否成功。

 

目前,这个项目还没有完全开发完成,对group这样的操作,我本人理解也不够深刻,所以在理解group之后再将这个补充到mango中,另外,mango还没有经受过足够的测试,可能在使用中会有一些问题,请给我发邮件,或是提交bug报告。如果你有好的建议,也请告知我。

 

 

源码地址:https://github.com/mazhiyuan/mango-spring

 

0
4
分享到:
评论

相关推荐

    mongodb-java-driver-4.4.0.jar

    mongodb-java-driver-4.4.0.jar

    mongodb-driver-sync-4.2.3-API文档-中英对照版.zip

    赠送jar包:mongodb-driver-sync-4.2.3.jar; 赠送原API文档:mongodb-driver-sync-4.2.3-javadoc.jar; 赠送源代码:mongodb-driver-sync-4.2.3-sources.jar; 赠送Maven依赖信息文件:mongodb-driver-sync-4.2.3....

    mongodb-java-driver-3.5.0.jar最新驱动包

    亲测可用,解压包含三个jar包,引用时sources和doc包根据需要添加。 mongo-java-driver-3.5.0.jar; mongo-java-driver-3.5.0-javadoc.jar; mongo-java-driver-3.5.0-sources.jar;

    mongodb-driver-core-4.2.3-API文档-中文版.zip

    赠送jar包:mongodb-driver-core-4.2.3.jar; 赠送原API文档:mongodb-driver-core-4.2.3-javadoc.jar; 赠送源代码:mongodb-driver-core-4.2.3-sources.jar; 赠送Maven依赖信息文件:mongodb-driver-core-4.2.3....

    mongodb-driver-sync-4.2.3-API文档-中文版.zip

    赠送jar包:mongodb-driver-sync-4.2.3.jar; 赠送原API文档:mongodb-driver-sync-4.2.3-javadoc.jar; 赠送源代码:mongodb-driver-sync-4.2.3-sources.jar; 赠送Maven依赖信息文件:mongodb-driver-sync-4.2.3....

    mongodb-driver-core-3.5.0.jar

    `mongodb-driver-3.5.0.jar`是完整版的MongoDB Java驱动,它扩展了`mongodb-driver-core`,提供了更高级别的操作接口,如`MongoClient`和`MongoDatabase`,方便开发者进行数据库操作。这个驱动程序使开发者能够方便...

    MongoDB(mongodb-org-server_5.0.4_amd64.deb)

    MongoDB Community Server(mongodb-org-server_5.0.4_amd64.deb)适用于适用于Debian10 MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB是...

    mongodb-async-driver-2.0.1 jar包

    MongoDB异步驱动程序(mongodb-async-driver)是为Java开发者设计的一个库,它允许应用程序以非阻塞的方式与MongoDB服务器进行通信,提高了处理大量并发请求的能力。 在"mongodb-async-driver-2.0.1.jar"这个特定...

    MongoDB_3.8.2驱动jar包及其同版本依赖包bson和mongodb-driver-core

    java和mongodb连接,需要mongodb-driver,您还必须下载其依赖项: bson和 mongodb-driver-core》》3个包: mongodb-driver-3.8.2.jar; bson-3.8.2.jar; mongodb-driver-core-3.8.2.jar

    mongodb-async-driver-2.0.1驱动.zip

    mongodb-async-driver-2.0.1驱动文件 jar MongoDB Async Java Driver Documentation Welcome to the MongoDB Async Java driver documentation hub. Getting Started The Getting Started guide contains ...

    mongodb-driver-3.4.3

    mongodb-driver-3.4.3,mongodb java开发中常用组件。

    MongoDB(mongodb-linux-x86_64-rhel70-5.0.4.tgz)

    MongoDB Community Server(mongodb-linux-x86_64-rhel70-5.0.4.tgz)适用于RedHat / CentOS 7.0 MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。 ...

    mongodb-linux-x86_64-rhel70-4.2.5.tgz

    `mongodb-linux-x86_64-rhel70-4.2.5.tgz`是一个专为RHEL 7.0系统设计的MongoDB二进制包,版本为4.2.5。 首先,安装MongoDB需要确保系统满足最低要求,例如兼容的Linux内核版本、足够的内存以及适当的硬件配置。...

    mongodb-windows-x86-64-7.0.5-signed.msi

    mongodb-windows-x86_64-7.0.5-signed.msi 数据库构建工具

    mongodb-windows-x86_64-4.4.0-signed.msi

    MongoDB window 安装包,mongodb-windows-x86_64-4.4.0-signed.msi,免除下载速度慢的烦恼!

    MongoDB Community(mongodb-org-server-5.0.8-1.el7.x86_64.rpm)

    MongoDB Community Server(mongodb-org-server-5.0.8-1.el7.x86_64.rpm)适用于RedHat / CentOS 7.0 MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。...

    mongodb-driver-core-3.4.3

    mongodb-driver-core-3.4.3,mongodb java开发常用组件。

    windows版本 mongodb可视化管理mongodb-compass-1.43.0-win32-x64.exe

    mongodb可视化管理mongodb-compass-1.43.0-win32-x64.exe mongodb compass官网下载地址:https://www.mongodb.com/try/download/compass mongodb相关下载地址: mongodb社区版:...

    mongodb-driver-core-4.3.3.jar

    mongodb-driver-core 4.3.3版本

    Java连接mongoDB需要的jar包(3.9.1)

    这里提到的"Java连接mongoDB需要的jar包(3.9.1)"是指Java开发者用于连接MongoDB数据库的一组关键库文件,包括`bson-3.9.1.jar`、`mongodb-driver-3.9.1.jar`和`mongodb-driver-core-3.9.1.jar`。这些JAR文件是...

Global site tag (gtag.js) - Google Analytics