mongo数据库的增删改查

首先建立连接池

applicationContext.xml 配置

1.表头 添加

 xmlns:mongo="http://www.springframework.org/schema/data/mongo"

2.添加配置

<!-- Mongo DataSource -->

1 <mongo:mongo id="mongo" host="${mongo.host}" port="${mongo.port}">
2 <mongo:options/>
3 </mongo:mongo>
4
5 <mongo:db-factory id="mongoDbFactory" dbname="${mongo.dbName}" mongo-ref="mongo"/>
6
7 <bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
8 <constructor-arg ref="mongoDbFactory"/>
9 </bean>

3. MongoAddKeywordService 添加

package com.honghailt.dataextracter.service;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;

import com.honghailt.dataextracter.model.MongoKeyword;
import com.mongodb.BasicDBObject;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
@Service
public class MongoAddKeywordService {
     @Autowired
     private MongoTemplate mongoDb;

//     public void createTable(){
//         DBCollection collection = mongoDb.getCollection(
//                    "tb_keyword_operation_test_log");
//            DBObject dbo = new BasicDBObject();
//            dbo.put("nick", "test");
//            dbo.put("col1", "col1");
//            dbo.put("col2", "col2");
//            dbo.put("col3", "col3");
//            dbo.put("col4", "col4");
//            collection.insert(dbo);
//     }

//     public void findData(){
//         DBCollection collection = mongoDb.getCollection(
//                    "cat_brand");
//         DBObject dbo = new BasicDBObject();
//         dbo.put("catId", "110202");
//         dbo.put("brand", "AData");
//        long timeBegin =System.currentTimeMillis();
//         DBCursor sor=collection.find(dbo);
//         System.out.println("count:\t"+sor.count());
//         long timeEnd =System.currentTimeMillis();
//         System.out.println(timeEnd-timeBegin);
//     }

     public Map<String,Integer> getCount(MongoKeyword keyWord){
         DBCollection collection = mongoDb.getCollection(
                    "cat_brand");

         DBObject dbo = new BasicDBObject();
            if(keyWord!=null && !StringUtils.isEmpty(keyWord.getKeywordStr())){
                dbo.put("brand", keyWord.getKeywordStr());
            }
            if(keyWord!=null && !StringUtils.isEmpty(keyWord.getCatId())){
                dbo.put("catId", keyWord.getCatId().toString());
            }
         DBCursor sor=collection.find(dbo);
         int count = sor.count();
         Map<String,Integer> map = new HashMap<String,Integer>();
         map.put("count", count);
        return map;
     }

     public List<MongoKeyword> getKeywordList(MongoKeyword keyWord){
         List<MongoKeyword> keyWordList = new ArrayList<MongoKeyword>();
         DBCollection collection = mongoDb.getCollection(
                    "cat_brand");
         DBObject dbo = new BasicDBObject();
        if(keyWord!=null && !StringUtils.isEmpty(keyWord.getKeywordStr())){
            dbo.put("brand", keyWord.getKeywordStr());
        }
        if(keyWord!=null && !StringUtils.isEmpty(keyWord.getCatId())){
            dbo.put("catId", keyWord.getCatId().toString());
        }
         DBCursor sor=collection.find(dbo).skip(0).limit(20);
         List<DBObject>  list=sor.toArray();
         for (DBObject dbObject : list) {
             MongoKeyword keyword = new MongoKeyword();
             if(dbObject.get("catId")!=null)
             keyword.setCatId(""+dbObject.get("catId"));
             if(dbObject.get("brand")!=null)
             keyword.setKeywordStr(""+ dbObject.get("brand"));
             if(dbObject.get("allAvgPrice")!=null)
             keyword.setAllAvgPrice(""+dbObject.get("allAvgPrice"));
             if(dbObject.get("allClicks")!=null)
             keyword.setAllClicks(""+dbObject.get("allClicks"));
             if(dbObject.get("allCompition")!=null)
             keyword.setAllCompition(""+dbObject.get("allCompition"));
             if(dbObject.get("allCtr")!=null)
             keyword.setAllCtr(""+ dbObject.get("allCtr"));
             if(dbObject.get("allPv")!=null)
             keyword.setAllPv(""+ dbObject.get("allPv"));
             keyWordList.add(keyword);
        }
         return keyWordList;
     }

    public void saveMongoKeyWord(String[] keywordStr, String[] catId) {
         DBCollection collection = mongoDb.getCollection(
                    "cat_brand");
         List<DBObject> d = new ArrayList<DBObject>();
         List<String> list =getUniqueList(keywordStr,catId);
         for (String string : list) {
             String[] str = string.split(",");
             DBObject dbo = new BasicDBObject();
                if(!StringUtils.isEmpty(str[0])){
                    dbo.put("brand", str[0]);
                }
                if(!StringUtils.isEmpty(str[1])){
                    dbo.put("catId", str[1]);
                }
                int count=    collection.find(dbo).count();
                if(count<=0){
                    dbo.put("brand", str[0]);
                    dbo.put("catId",str[1]);
                    d.add(dbo);
                }else{
                    System.out.println("已存在keywordStr:"  + str[0] +"catId:" +str[1]);
                }
           }

            collection.insert(d);
        // TODO Auto-generated method stub
    }

    public static List<String> getUniqueList(String[] keywordStr, String[] catId){
        List<String> list= new ArrayList<String>();
        if(keywordStr!=null && keywordStr.length>=1){
            for (int i = 0; i < keywordStr.length; i++) {
                if (!StringUtils.isEmpty(keywordStr[i]) && !StringUtils.isEmpty(catId[i])) {
                    String str=keywordStr[i]+","+catId[i];
                    if(!list.contains(str)){
                        list.add(str);
                    }
                }
            }
        }
        return list;
    }

//    public static void main(String[] args) {
//        String[] strs1={"1","2","3","4","1","2"};
//        String[] strs2={"1","2","3","4","1","3"};
//        List<String> list =getUniqueList(strs1,strs2);
//        for (Object object : list) {
//            System.out.println(object);
//        }
//    }

}

更新操作

public List<Map<String,String>> getMongoList(){
        DBCollection col = baseDao.getDB().getCollection(Constant.TABLE_CUSTOMER_ORDER_MONTN);
        DBCursor sor =col.find();
         List<DBObject>  list=sor.toArray();
         Map<String,String> map=    this.getUserList();
//         

         for(String s:map.keySet()){
             System.out.println(s);
             BasicDBObject query = new BasicDBObject();
              query.put("creator",s );
              DBObject update=new BasicDBObject();
              update.put("creator_deptid", map.get(s));
              col.update(query, new BasicDBObject().append("$set", update),false,true);
         }
//        for (DBObject dbObject : list) {
//            String name =(String) dbObject.get("creator");
//            if(StringUtils.isNotEmpty(map.get(name))){
////                System.out.println(dbObject.get("creator_deptid")+"  "+(map.get(name)));
//                if(!dbObject.get("creator_deptid").equals(map.get(name))){
//                    System.out.println(dbObject.get("creator_deptid")+"|0000==*==0000|"+(map.get(name))+"aaaa"+name);
//                }
//            }
//        }
        return null;

    }
时间: 2024-12-10 12:56:54

mongo数据库的增删改查的相关文章

使用MyEclipse对MongoDB数据库 进行增删改查操作

前面写了一篇MongoDB的下载与安装,接下来此篇写的是MongoDB数据库在JAVA程序中的基本功能: 使用MyEclipse对MongoDB数据库进行增删改查操作 1.导入JAR包 使用了Spring3.0:此类包,可以上网查询"MongoDB相关JAR包" 2.创建一个Person实体类 源代码如下: public class Person(){ //属性 Private String id; //id Private String name; //name Private in

【Hibernate】Hibernate的在Eclipse+Mysql的配置、安装,纯Java,利用Annotation与HQL完成数据库的增删改查

这篇文章有很多槽点,在Hibernate4.x上面用着Hibernate3.x的写法去写.而且程序中放到Eclipse中会有一大堆警告,但是这好歹也在一定程度上完成了Hibernate的入门.毕竟现在很多介绍Hibernate的书籍都是用Hibernate3.x的写法去写.上次那篇<[Hibernate]最简单的Hibernate工程--账号注册系统>(点击打开链接)杂糅Struts的技术其实是不对的.因为Hibernate完成的是,从Java到数据库,从数据库到Java的任务.之后Java与

android中SQLite数据库的增删改查

1.数据库帮助类PersonSQLiteOpenHelper package com.wzw.sqllitedemo.db; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDatabase.CursorFactory; import android.database.sqlite.SQLiteOpenHelper

Windows下安装MySQLdb, Python操作MySQL数据库的增删改查

这里的前提是windows上已经安装了MySQL数据库,且配置完毕,能正常建表能操作.在此基础上只需安装MySQL-python-1.2.4b4.win32-py2.7.exe就ok了,只有1M多.这个有点类似jdbc里的那个jar包. 下载链接:http://sourceforge.net/projects/mysql-python/ , 百度云盘 :http://pan.baidu.com/s/1dDgnfpR 密码:7bna 接着import MySQLdb就能使用了,下面给出测试代码:

TP框架中 数据库的增删改查

框架会用到数据库的内容,这一篇就是关于数据库的增删改查. 数据库的操作,无疑就是连接数据库,然后对数据库中的表进行各种查询,然后就是对数据的增删改的操作, 想要操作数据库,第一步必然是要:链接数据库 一.链接数据库 (1)找到模块文件夹中的Conf文件夹,然后进行编写config.php文件 我这里是这样的文件路径 (2)打开这个config.php文件,然后找到父类配置文件convention.php文件,将关于"数据库"的部分复制粘贴到config.php配置文件中(父类的conv

mysql笔记--数据库基本增删改查 修改表结构

数据库基本增删改查 1. 增-添加/插入数据,insert into 插入哪张表,那些列,什么值, 语句:insert into 表名(列1,列2,列3)values (值1,值2,值3): 可以不按原列的顺序插入,也可以插入部分列,但是值与列要一一对应,不能混乱!!! 一次插入多行数据 : Insert into 表名(列1,列2)values (值1,值2),(值1,值2): 2. 改-更新数据update 更新哪张表,哪些列,哪些值 语句:update 表名 set 列1=值1,列2=值2

java jdbc 连接mysql数据库 实现增删改查

好久没有写博文了,写个简单的东西热热身,分享给大家. jdbc相信大家都不陌生,只要是个搞java的,最初接触j2ee的时候都是要学习这么个东西的,谁叫程序得和数据库打交道呢!而jdbc就是和数据库打交道非常基础的一个知识,也是比较接近底层的,在实际的工作中大家用得更多的其实还是比较成熟的框架,例如Hibernate.Mybatis. 但是作为这些成熟框架的底层的jdbc却也是我们应该去掌握的,只有了解了jdbc的增删改查,这样在以后如果有兴趣去研究Hibernate或者Mybatis的源代码的

【Visual Basic】vb6的ListView控件,对Access2003数据库的增删改查,判断是否有中文、多窗体操作

vb6对Access2003数据库的增删改查并不复杂,可以通过ado对象轻松完成,下面举个小例子,同时说明vb6中的ListView控件的使用.虽然在<[Visual Basic]列表控件ListView的增删改查.模态对话框.禁止窗口调整大小>曾经对VB.NET的ListView控件进行详细的说明,但是证明微软就是个坑爹货,vb6对于ListView实现的代码居然跟VB.NET有着彻底的不同,似乎换了一门语言似得的.改代码什么的最讨厌的. 首先,在vb6生成的工程文件夹中有着一个db1.md

Android学习---SQLite数据库的增删改查和事务(transaction)调用

上一篇文章中介绍了手工拼写sql语句进行数据库的CRUD操作,本文将介绍调用sqlite内置的方法实现CRUD操作,其实质也是通过拼写sql语句. 首先,创建一个新的android项目: 其次,查看代码实现增删查改: 1.创建DB工具类 MyDBHelper.java(创建数据库的操作) package com.amos.android_db; import android.content.Context; import android.database.sqlite.SQLiteDatabas