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. TensorFlow——共享变量的使用方法

    1.共享变量用途 在构建模型时,需要使用tf.Variable来创建一个变量(也可以理解成节点).当两个模型一起训练时,一个模型需要使用其他模型创建的变量,比如,对抗网络中的生成器和判别器.如果使用t ...

  2. CodeForces - 361D Levko and Array

    Discription Levko has an array that consists of integers: a1, a2, ... , an. But he doesn’t like this ...

  3. [TJOI2014] 上升子序列

    刚刚做的时候一看:这不是个傻逼题吗hhhhh....然后发现写完了过不了样例,仔细一看题:同构的算一种. 这可咋办啊? 其实很简单,设f[i] 为 以a[i] 结尾的上升子序列个数,我们考虑当前如果算 ...

  4. spring-cloud集成mybatis-plus

    mybatis-plus插件是对mybatis做出系列增强插件,后面简称MP,MP可免去开发者重复编写xml.mapper.service.entity等代码,通过MP提供的实体注解来完成单表的CRU ...

  5. 【spring boot logback】日志logback 生成日志文件在本项目下,而不在指定的日志文件目录下/指定日志文件到达最大值后不按照配置进行切割

    原本的日志文件配置如下: <?xml version="1.0" encoding="UTF-8"?> <configuration scan ...

  6. HDU4004

    题目大意,有一条长度为L和河流,中间穿插n个石凳,青蛙跳m次经过石凳后到达对岸,求青蛙每次跳跃的最大距离的最小值 本题数据量大n<500000,显然简单的o(n*n)算法是通过不了的,在输入大量 ...

  7. EasyMvc入门教程-基本控件说明(13)选项卡导航

    选项卡Tab导航主要用于企业页面显示不同子类或者子页面的信息内容. 先来一个基本的使用例子:代码如下: @{ var data = new List<TabItem>() { new Ta ...

  8. shell脚本中数组array常用技巧学习实践

    shell中数组的下标默认是从0开始的 1.将字符串放在数组中,获取其长度 #!/bin/bashstr="a b --n d"array=($str)length=${#arra ...

  9. Solidworks如何开启自动求解

    1 我打开了一个DWG格式的文件,提示草图太大,关闭的自动求解(就是没法撤销了)   2 工具-草图设定-自动求解   3 随便做一个标注,然后发现撤销按钮可以使用了,点击之后也的确可以撤销刚才的操作 ...

  10. HDU 3466 01背包变形

    给出物品数量N和总钱数M 对于N个物品.每一个物品有其花费p[i], 特殊值q[i],价值v[i] q[i] 表示当手中剩余的钱数大于q[i]时,才干够买这个物品 首先对N个物品进行 q-p的排序,表 ...