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 类能方便地操作数组,并且它提供的所有方法都是静态的 ...
随机推荐
- Oracle并发控制、事务管理学习笔记
(a)基本概念 锁的2种最基本.最简单的类型:排他锁(eXclusive lock,即X锁).共享锁(Share lock,即S锁). 不同级别的锁定协议及其作用: 申请的锁 及其作用 锁定协议 修改 ...
- java文件下载导出
前台代码: $("#btnExport").click(function(){ top.$.jBox.confirm("确认要导出房屋信息吗?","系 ...
- IOS 开发之 Method Swizzling
ios 分类中如果增加的方法与被扩展的类方法名重复,则原方法就没法被调用….看以下例子 例如: @interface ClassA : NSObject - (NSString *) myMethod ...
- Blocks的申明调用与Queue当做锁的用法
Blocks的申明与调用 话说Blocks在方法内使用还是挺方便的,之前都是把相同的代码封装成外部函数,然后在一个方法里需要的时候调用,这样挺麻烦的.使用Blocks之后,我们可以把相同代码在这个方法 ...
- hdu1420(C++)
数论中模的运算: a*b%n=(a%n)*(b%n)%c; (a+b)%n=(a%n+b%n)%n; 幂的模:A^n%c=r 于是A^(n+1)%c=A*r%c; #include<ios ...
- 工程管理,用网页就够了!——Wish3D Earth在线三维地球强势上线
大型工程涉及到众多的施工队.管理单位和相关部门,相互之间需要传递的数据.文件的数量是惊人的,必须建立起有效的信息管理方法,使管理者及时把握工程的信息,全面准确地控制工程施工情况. 现代化的建筑工程管理 ...
- 23. Spring Boot启动加载数据CommandLineRunner【从零开始学Spring Boot】
转:http://blog.csdn.net/linxingliang/article/details/52069503 实际应用中,我们会有在项目服务启动的时候就去加载一些数据或做一些事情这样的需求 ...
- $ is not defined
$ is not defined 引入Jquery的顺序不正确,要把它放在第一个引入
- quartz 应用到 spring定时任务 执行两次
https://my.oschina.net/superkangning/blog/467487
- MQTT---HiveMQ源代码具体解释(十四)Persistence-LocalPersistence
源博客地址:http://blog.csdn.net/pipinet123 MQTT交流群:221405150 简单介绍 HiveMQ的Persistence提供配置包含File和Memory,以解决 ...