mongodb下载地址:
http://www.veryhuo.com/down/html/mongodb.html
1 自定义安装到C:\mongodb目录下。
2 手动在C:\mongodb目录下创建data\db和logs两个文件夹
3 以管理员身份启动cmd,进入到c:\mongodb\bin为当前目录。
c:\mongodb\bin> echo logpath=c:\mongodb\logs\mongodb.log> c:\mongodb\mongod.cfg
c:\mongodb\bin> echo dbpath=c:\mongodb\data\db>> c:\mongodb\mongod.cfg
4
C:\mongodb\bin>sc create MongoDB binPath= "\"c:\mongodb\bin\mongod.exe\" --service --config=\"c:\mongodb\mongod.cfg\"" DisplayName= "MongoDB 2.6 Stardard" start= "auto"
此时会提示 CreateService 成功
注意输入命令中每个"="后面,都要有个空格,除了--config外
5 net start MongoDB
此时,就成功的创建了自动运行的MongoDB服务。
安装mongodb客户端
下载地址: http://www.cncrk.com/downinfo/44839.html
创建maven工程
pom.xml
<span style="font-size:10px;"><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>gy</groupId> <artifactId>MongDB</artifactId> <packaging>war</packaging> <version>0.0.1-SNAPSHOT</version> <name>MongDB Maven Webapp</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> <version>3.2.7.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aspects</artifactId> <version>3.2.7.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>3.2.7.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>3.2.7.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>3.2.7.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>3.2.7.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-expression</artifactId> <version>3.2.7.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>3.2.7.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>3.2.7.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>3.2.7.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>3.2.7.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>3.2.7.RELEASE</version> </dependency> <!-- mongodb spring --> <!-- <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-mongodb</artifactId> <version>1.6.1.RELEASE</version> </dependency> --> <dependency> <groupId>org.mongodb</groupId> <artifactId>mongo-java-driver</artifactId> <version>2.10.1</version> </dependency> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-mongodb</artifactId> <version>1.2.1.RELEASE</version> </dependency> </dependencies> <build> <finalName>MongDB</finalName> </build> </project></span><span style="font-size:48px;"> </span>
mongodb.properties
mongo.host=localhost mongo.port=27017 mongo.dbName=test
spring-datasource.xml
<span style="font-size:10px;"><?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:util="http://www.springframework.org/schema/util" xmlns:jdbc="http://www.springframework.org/schema/jdbc" xmlns:mongo="http://www.springframework.org/schema/data/mongo" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd http://www.springframework.org/schema/data/mongo http://www.springframework.org/schema/data/mongo/spring-mongo-1.0.xsd http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.1.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd"> <!-- mongo db配置 --> <mongo:mongo host="localhost" port="27017" /> <!-- mongo的工厂,通过它来取得mongo实例,dbname为mongodb的数据库名,没有的话会自动创建 --> <mongo:db-factory dbname="test" mongo-ref="mongo" /> <!-- mongodb的主要操作对象,所有对mongodb的增删改查的操作都是通过它完成 --> <bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate"> <constructor-arg name="mongoDbFactory" ref="mongoDbFactory" /> </bean> <!-- 映射转换器,扫描back-package目录下的文件,根据注释,把它们作为mongodb的一个collection的映射 --> <mongo:mapping-converter base-package="com.mongodb.entity" /> <!-- mongodb bean的仓库目录,会自动扫描扩展了MongoRepository接口的接口进行注入 --> <mongo:repositories base-package="com.mongodb.service" /> <context:annotation-config /> </beans></span>
实体类 User.java
import org.springframework.data.annotation.Id; import org.springframework.data.mongodb.core.mapping.Document; @Document(collection="t_user") public class User implements Serializable{ private static final long serialVersionUID = -6270568573087300894L; @Id private String id; private String name; private Integer age; private Double height; private Integer type; private String total;
UserService.java
@Service("userService") public class UserService { @Autowired private MongoTemplate mongoTemplate; public List<User> find(){ return mongoTemplate.findAll(User.class); } /** * 添加对象 * @param user * @return */ public Boolean insert(User user){ Boolean result=false; try{ mongoTemplate.insert(user); result=true; }catch(Exception e){ e.printStackTrace(); } return result; } /** * 删除对象 * @param user * @return */ public Boolean delete(User user) { Boolean result=false; try{ mongoTemplate.remove(user); result=true; }catch(Exception e){ e.printStackTrace(); } return result; } /** * 批量添加对象 * @param users * @return */ public Boolean insertAll(List<User> users) { Boolean result=false; try{ mongoTemplate.insertAll(users); result=true; }catch(Exception e){ e.printStackTrace(); } return result; } /** * 统计 * @param users * @return */ public Boolean count() { Boolean result=false; try{ DBCollection coll = mongoTemplate.getCollection("t_user"); String map = "function() { emit(this._class, {count:1});}"; String reduce = "function(key, values) {" + "var total = 0;" + "for(var i=0;i<values.length;i++){" + "total += values[i].count;" + "}return {count:total};}"; String result2 = "resultCollection"; MapReduceOutput mapReduceOutput = coll.mapReduce(map, reduce.toString(), result2, null); DBCollection resultColl = mapReduceOutput.getOutputCollection(); DBCursor cursor = resultColl.find(); while (cursor.hasNext()) { System.out.println(cursor.next()); } result=true; }catch(Exception e){ e.printStackTrace(); } return result; } /** * 求和 * @return */ public Boolean sum() { Boolean result=false; try{ DBCollection coll = mongoTemplate.getCollection("t_user"); String map = "function() { emit(this._class, {sum:this.age});}"; String reduce = "function(key, values) {" + "var total = 0;" + "for(var i=0;i<values.length;i++){" + "total += values[i].sum;" + "}return {sum:total};}"; String result2 = "resultCollection"; MapReduceOutput mapReduceOutput = coll.mapReduce(map, reduce.toString(), result2, null); DBCollection resultColl = mapReduceOutput.getOutputCollection(); DBCursor cursor = resultColl.find(); while (cursor.hasNext()) { DBObject obj=cursor.next(); System.out.println(obj.get("value")); } result=true; }catch(Exception e){ e.printStackTrace(); } return result; } /** * 最大值 * @return */ public Boolean max() { Boolean result=false; try{ Query query =new Query(); query.with(new Sort(Direction.DESC, "age")); query.limit(1); User u=mongoTemplate.findOne(query, User.class); System.out.println(u.getAge()); result=true; }catch(Exception e){ e.printStackTrace(); } return result; } /** * 最小值 * @return */ public Boolean min() { Boolean result=false; try{ Query query =new Query(); query.with(new Sort(Direction.ASC, "age")); query.limit(1); User u=mongoTemplate.findOne(query, User.class); System.out.println(u.getAge()); result=true; }catch(Exception e){ e.printStackTrace(); } return result; } /** * 平均值 * @return */ public Boolean avg() { Boolean result=false; try{ DBCollection coll = mongoTemplate.getCollection("t_user"); String map = "function() { emit(this._class, {avg:this.age});}"; String reduce = "function(key, values) {" + "var total = 0;" + "for(var i=0;i<values.length;i++){" + "total += values[i].avg;" + "}return {avg:total/values.length};}"; String result2 = "resultCollection"; MapReduceOutput mapReduceOutput = coll.mapReduce(map, reduce.toString(), result2, null); DBCollection resultColl = mapReduceOutput.getOutputCollection(); DBCursor cursor = resultColl.find(); while (cursor.hasNext()) { DBObject obj=cursor.next(); System.out.println(obj.get("value")); } result=true; }catch(Exception e){ e.printStackTrace(); } return result; } }
Test类
public class TestMongoDB { private ClassPathXmlApplicationContext context; UserService service=null; public TestMongoDB() { String configLocation = "spring-global.xml"; context = new ClassPathXmlApplicationContext(configLocation); context.start(); service=(UserService)context.getBean("userService"); } /** * 添加一个对象 */ public void insertOne(){ User user =new User(); user.setId("4"); user.setName("333"); user.setAge(50); user.setHeight(208.8d); user.setType(1); System.out.println(service.insert(user)); } /** * 删除一个对象 */ public void deleteOne(){ User user =new User(); for(Integer i=0;i<10;i++){ user.setId(i.toString()); System.out.println(service.delete(user)); } } /** * 添加对象集合 */ public void insertAll(){ List<User> users=new ArrayList<User>(); User user =null; for(Integer i=0;i<10;i++){ user=new User(); user.setId(i.toString()); user.setName("张"+i); user.setAge(i); user.setHeight(160d+i); user.setType(i/2==0?0:1); users.add(user); } System.out.println(service.insertAll(users)); } public void Count(){ System.out.println(service.count()); } public void Sum(){ System.out.println(service.sum()); } @Test public void Max(){ System.out.println(service.max()); } public void Min(){ System.out.println(service.min()); } public void Avg(){ System.out.println(service.avg()); } }