maven spring 整合mongoDb

突然来了需求 想用mongodb做聚合 于是赶紧谷百 但是过程却很艰苦
发现网上有很多 但是自己搭建起来不是版本错误就是权限不足 从网上爬取下来的有很多错误 所有决定记录下,初次使用mongodb 有很多问题,请留言交流。
mongdb使用的jar包版本


    
    3.7.1
    2.0.5.RELEASE

依赖的jar包

 
        
            org.mongodb
            mongodb-driver
            ${mongodb_version}
        
        
            org.springframework.data
            spring-data-mongodb
            ${spring-data-version}
        
        
            org.springframework.data
            spring-data-commons
            ${spring-data-version}
        

xml的配置的东西还没有研究 等有机会补上 mongodb 创建用户的方式 一般都是创建一个属于自己的数据库 然后切换到admin数据 之后创建一个拥有全数据库操作权限的用户 之后在对其他的数据库进行操作

use admin
    switched to db admin
> db.createUser(
...   {
...     user: "dba",
...     pwd: "dba",
...     roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
...   }
... )
Successfully added user: {
    "user" : "dba",
    "roles" : [
        {
            "role" : "userAdminAnyDatabase",
            "db" : "admin"
        }
    ]
}

mongodb.xml配置 这里一定要注意 第一:http://www.springframework.org/schema/beans/spring-beans-4.3.xsd 与http://www.springframework.org/schema/data/mongo/spring-mongo-1.10.xsd 的版本 在配置过程中如果错误找不到原因 很有可能是这个版本造成的;第二:credentials=”root:123456@admin 这里连接的是admin的数据库 之后操作的是cosfun数据库




    
    
    
    
        
    

    
        
    

controller测试mongodb 这里测试只是测试了插入和简单的聚合 如果想深入了解 自行谷百

package cn.cosfun.rest;

import cn.qt.util.MediaTypes;
import com.mongodb.client.AggregateIterable;
import com.mongodb.client.MongoCollection;
import org.bson.Document;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.stereotype.Controller;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

@Controller
@Produces(MediaTypes.JSON_UTF_8)
@Path("/v1/MongoDbController")
public class MongoDbController {

@Autowired
private MongoTemplate mongoTemplate;
@GET
@Path("/testMongoDb")
public Map testMongoDb() {
    MongoCollection user_statistics = mongoTemplate.getCollection("user_statistics");
    Document basicDBObject = new Document();
    basicDBObject.put("test", "cccc");
    basicDBObject.put("count", 1);
    user_statistics.insertOne(basicDBObject);
    ArrayList dbObjects = new ArrayList<>();
    Document group = new Document("$group", new Document("_id", "$test").append("total", new Document("$sum", "$count")));
    dbObjects.add(group);
    AggregateIterable aggregate = user_statistics.aggregate(dbObjects).allowDiskUse(true);
    HashMap objectObjectHashMap = new HashMap<>();
    int i = 0;
    for (Document d : aggregate) {
        i++;
        Integer ITEM_NUMBER = d.getInteger("total");
        objectObjectHashMap.put("dd" + i, ITEM_NUMBER);

    }
    objectObjectHashMap.put("ddd", aggregate);
    return objectObjectHashMap;
}
}

你可能感兴趣的:(web框架,Spring)