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;
}

MongoDB的CRUD操作(java Util )的更多相关文章

  1. MongoDB的CRUD操作

    1. 前言 在上一篇文章中,我们介绍了MongoDB.现在,我们来看下如何在MongoDB中进行常规的CRUD操作.毕竟,作为一个存储系统,它的基本功能就是对数据进行增删改查操作. MongoDB中的 ...

  2. 实例讲解Springboot整合MongoDB进行CRUD操作的两种方式

    1 简介 Springboot是最简单的使用Spring的方式,而MongoDB是最流行的NoSQL数据库.两者在分布式.微服务架构中使用率极高,本文将用实例介绍如何在Springboot中整合Mon ...

  3. 【翻译】MongoDB指南/CRUD操作(四)

    [原文地址]https://docs.mongodb.com/manual/ CRUD操作(四) 1 查询方案(Query Plans) MongoDB 查询优化程序处理查询并且针对给定可利用的索引选 ...

  4. 【翻译】MongoDB指南/CRUD操作(三)

    [原文地址]https://docs.mongodb.com/manual/ CRUD操作(三) 主要内容: 原子性和事务(Atomicity and Transactions),读隔离.一致性和新近 ...

  5. 【翻译】MongoDB指南/CRUD操作(二)

    [原文地址]https://docs.mongodb.com/manual/ MongoDB CRUD操作(二) 主要内容: 更新文档,删除文档,批量写操作,SQL与MongoDB映射图,读隔离(读关 ...

  6. 【翻译】MongoDB指南/CRUD操作(一)

    [原文地址]https://docs.mongodb.com/manual/ MongoDB CRUD操作(一) 主要内容:CRUD操作简介,插入文档,查询文档. CRUD操作包括创建.读取.更新和删 ...

  7. list删除操作 java.util.ConcurrentModificationException

    首先大家先看一段代码: public static void main(String[] args) { List<String> listStr = new ArrayList<S ...

  8. 为什么阿里巴巴禁止在 foreach 循环里进行元素的 remove/add 操作--java.util.ConcurrentModificationException

    摘要 foreach循环(Foreach loop)是计算机编程语言中的一种控制流程语句,通常用来循环遍历数组或集合中的元素. 在阿里巴巴Java开发手册中,有这样一条规定: 但是手册中并没有给出具体 ...

  9. Java中数组操作 java.util.Arrays 类常用方法的使用

    任何一门编程语言,数组都是最重要和常用的数据结构之一,但不同的语言对数组的构造与处理是不尽相同的. Java中提供了java.util.Arrays 类能方便地操作数组,并且它提供的所有方法都是静态的 ...

随机推荐

  1. C++ primer分章节快速回顾

    第三章: 1,sozeof(int): int n_int=INT_MAX; sizeof n_int;(对变量括号可选) 2,#include<climits>包含一些类型的最大值3,c ...

  2. c++语言虚函数实现多态的原理(更新版)

    自上一个帖子之间跳过了一篇总结性的帖子,之后再发,今天主要研究了c++语言当中虚函数对多态的实现,感叹于c++设计者的精妙绝伦 c++中虚函数表的作用主要是实现了多态的机制.首先先解释一下多态的概念, ...

  3. setTimeout改变this指向(****************************************)

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  4. C#中结构体与类的区别

    一.结构体和类非常相似 1,定义和使用非常相似,例子如下:public struct Student{    string Name;    int Age;}public class Questio ...

  5. Mac. 文件夹赋予权限

    1. click on your background to go to finder click on go and go to folder /usr right click on local a ...

  6. 3747: [POI2015]Kinoman|线段树

    枚举左区间线段树维护最大值 #include<algorithm> #include<iostream> #include<cstdlib> #include< ...

  7. CentOS7.0修改主机名(hostname)

    Linux中的hostname在大多数应用中至为重要,例如有些应用强制使用主机名称而不能使用IP地址,如果默认主机名称都为localhost.localdomain 的话那一定会出现问题,而且看起来也 ...

  8. spring boot 读取配置文件(application.yml)中的属性值

    在spring boot中,简单几步,读取配置文件(application.yml)中各种不同类型的属性值: 1.引入依赖: <!-- 支持 @ConfigurationProperties 注 ...

  9. 手机APP脚本录制(LoadRunner 12)

    最近因项目需要,研究了下手机APP脚本录制方法,有需要的童鞋可参考使用! 方法1: 在手机网络中设置网络代理,使用LR12选择Mobile Application – HTTP/HTML协议中代理录制 ...

  10. hibernate 数据缓存

    http://www.cnblogs.com/wean/archive/2012/05/16/2502724.html,