MongoDB的CRUD操作(java Util )

1、保存插入操作:

public static synchronized String insert(DBObject record) {
        DBCollection col = MongoDB.getDBCollection(TABLE_NAME);
        record.put("time", new Date().getTime());
        WriteResult result = col.insert(record);
        //当前插入表的_id
        return record.get("_id").toString();
   }

注意:col.insert(record)执行成功后 record可以获取_id 可以通过 record.get("_id")是否为空判断保存是否为空!

2、更新编辑操作:

public static synchronized int edit(DBObject record) {
        DBCollection col = MongoDB.getDBCollection(TABLE_NAME);
        // 检查是否有对应的obj_id存在
        BasicDBObject queryObj = new BasicDBObject();
        queryObj.put("_id", record.get("_id"));
        DBCursor dc = col.find(queryObj);
        if (dc.count() < 1) {
            return NO_RECORD_EXIST;
        } 
        // 保存数据
        record.removeField("_id");
        WriteResult result = col.update(queryObj, new BasicDBObject("$set", record));
        return result.getN();
    }

注意:在更新数据前要将被更新的数据中_id移除掉 否则报错,queryObj是更新的查询条件,record是更新的记录,record中不能包含_id...

3、删除操作:

public static synchronized int del(DBObject record, OlaCloudContent olaCloudContent) {
        DBCollection col = MongoDB.getDBCollection(TABLE_NAME);
        // 检查是否有对应的obj_id存在
        DBCursor dc = col.find(record);
        if (dc.count() < 1) {
            return NO_RECORD_EXIST;
        }// 删除数据
        WriteResult result = col.remove(record);
        OpLog.AddOpLog(olaCloudContent.getUserName(), TABLE_NAME, "del_key", record.toString());
        return result.getN();
    }
    

4、查询操作:

public static synchronized CorpusAnswerWrap find(DBObject record,DBObject sort,int limit){
        CorpusAnswerWrap answerWrap = new CorpusAnswerWrap();
        List<AnswerEntity> answerList = new ArrayList<AnswerEntity>();
        DBCollection col = MongoDB.getDBCollection(TABLE_NAME);
        DBCursor dc = col.find(record).sort(sort);
        if(limit > 0){
            dc.limit(limit);
        }
        answerWrap.setTotalCount(dc.count());
        while(dc.hasNext()){
            AnswerEntity entity = answerWrap.new AnswerEntity();
            entity.setRecord(dc.next());
            answerList.add(entity);
        }
        answerWrap.setDatas(answerList.toArray(new AnswerEntity[answerList.size()]));
        return answerWrap;
    }
原文地址:https://www.cnblogs.com/Wen-yu-jing/p/4193582.html