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;
}
MongoDB的CRUD操作(java Util )的更多相关文章
- MongoDB的CRUD操作
1. 前言 在上一篇文章中,我们介绍了MongoDB.现在,我们来看下如何在MongoDB中进行常规的CRUD操作.毕竟,作为一个存储系统,它的基本功能就是对数据进行增删改查操作. MongoDB中的 ...
- 实例讲解Springboot整合MongoDB进行CRUD操作的两种方式
1 简介 Springboot是最简单的使用Spring的方式,而MongoDB是最流行的NoSQL数据库.两者在分布式.微服务架构中使用率极高,本文将用实例介绍如何在Springboot中整合Mon ...
- 【翻译】MongoDB指南/CRUD操作(四)
[原文地址]https://docs.mongodb.com/manual/ CRUD操作(四) 1 查询方案(Query Plans) MongoDB 查询优化程序处理查询并且针对给定可利用的索引选 ...
- 【翻译】MongoDB指南/CRUD操作(三)
[原文地址]https://docs.mongodb.com/manual/ CRUD操作(三) 主要内容: 原子性和事务(Atomicity and Transactions),读隔离.一致性和新近 ...
- 【翻译】MongoDB指南/CRUD操作(二)
[原文地址]https://docs.mongodb.com/manual/ MongoDB CRUD操作(二) 主要内容: 更新文档,删除文档,批量写操作,SQL与MongoDB映射图,读隔离(读关 ...
- 【翻译】MongoDB指南/CRUD操作(一)
[原文地址]https://docs.mongodb.com/manual/ MongoDB CRUD操作(一) 主要内容:CRUD操作简介,插入文档,查询文档. CRUD操作包括创建.读取.更新和删 ...
- list删除操作 java.util.ConcurrentModificationException
首先大家先看一段代码: public static void main(String[] args) { List<String> listStr = new ArrayList<S ...
- 为什么阿里巴巴禁止在 foreach 循环里进行元素的 remove/add 操作--java.util.ConcurrentModificationException
摘要 foreach循环(Foreach loop)是计算机编程语言中的一种控制流程语句,通常用来循环遍历数组或集合中的元素. 在阿里巴巴Java开发手册中,有这样一条规定: 但是手册中并没有给出具体 ...
- Java中数组操作 java.util.Arrays 类常用方法的使用
任何一门编程语言,数组都是最重要和常用的数据结构之一,但不同的语言对数组的构造与处理是不尽相同的. Java中提供了java.util.Arrays 类能方便地操作数组,并且它提供的所有方法都是静态的 ...
随机推荐
- 误加all_load引起的程序报错
一.为什么要加-all_load 在64位的mac系统和iOS系统下,链接器有一个bug,会导致只包含有类别的静态库无法使用-ObjC标志来加载文件.解决方法是使用-all_load或者-force_ ...
- CentOS7安装部署jumpserver0.5
组件说明 Jumpserver为管理后台,管理员可以通过Web页面进行资产管理.用户管理.资产授权等操作; Coco为SSH Server和Web Terminal Server.用户可以通过使用自己 ...
- 寒假week1---二分查找(二分枚举)
寒假week1---二分查找(二分枚举)1.适用条件:要查找(枚举)的集合有序 && 查找(枚举)的“条件”具有单调性2.什么是“条件”:example: 1.给定一个有序数组,从中查 ...
- Linux内核中等待队列的几种用法
Linux内核里的等待队列机制在做驱动开发时用的非常多,多用来实现阻塞式访问,下面简单总结了等待队列的四种用法,希望对读者有所帮助. 1. 睡眠等待某个条件发生(条件为假时睡眠): 睡眠方式:wait ...
- OSG(OpenSceneGraphic) 渲染引擎架构--整体认识 [转]
原文:http://blog.csdn.net/zangle260/article/details/41123067?utm_source=tuicool 本文参考<<osg最长一帧> ...
- hibernate向mysql插入数据后,得到该条数据主键的方法
hibernate向MySQL插入一条数据后,得到该条数据主键的方法.主键是自增长的. 保存完成后,直接用该实体的getId的方法就可以得到.因为保存完成后,hibernate会自动将id赋值给实体. ...
- 【音乐App】—— Vue-music 项目学习笔记:搜索页面开发
前言:以下内容均为学习慕课网高级实战课程的实践爬坑笔记. 项目github地址:https://github.com/66Web/ljq_vue_music,欢迎Star. 搜索歌手歌曲 搜索历史保存 ...
- 【LeetCode-面试算法经典-Java实现】【139-Word Break(单词拆分)】
[139-Word Break(单词拆分)] [LeetCode-面试算法经典-Java实现][全部题目文件夹索引] 原题 Given a string s and a dictionary of w ...
- 有趣的HTML5/CSS3艺术网站
http://www.html5tricks.com/ 2017年8月31日08:16:21
- 微信小程序 - 考试状态不同显示
未开考 .已交卷. 考试中 .考试结束 #ddd #f00 #ff0 默认禁用色 禁用的button仅有style起作用,四个状态,通过wx:if ... elif ... e ...