package com.x.mongodb;
import java.net.UnknownHostException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.bson.types.ObjectId;
import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBObject;
import com.mongodb.Mongo;
import com.mongodb.MongoException;
public final class MongoDBUtil {
private static final String HOST = "127.0.0.1";
private static final String dbName = "test";
private static Mongo mongo;
private static DB db;
static {
try {
mongo = new Mongo(HOST);
db = mongo.getDB(dbName);
// db.authenticate(username, passwd)
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (MongoException e) {
e.printStackTrace();
}
}
private MongoDBUtil() {
}
/**
* 添加操作
* <br>------------------------------<br>
* @param map
* @param collectionName
*/
public static void add(Map<String, Object> map, String collectionName) {
DBObject dbObject = new BasicDBObject(map);
getCollection(collectionName).insert(dbObject);
}
/**
* 添加操作
* <br>------------------------------<br>
* @param list
* @param collectionName
*/
public static void add(List<Map<String, Object>> list, String collectionName) {
for (Map<String, Object> map : list) {
add(map, collectionName);
}
}
/**
* 删除操作
* <br>------------------------------<br>
* @param map
* @param collectionName
*/
public static void delete(Map<String, Object> map, String collectionName) {
DBObject dbObject = new BasicDBObject(map);
getCollection(collectionName).remove(dbObject);
}
/**
* 删除操作,根据主键
* <br>------------------------------<br>
* @param id
* @param collectionName
*/
public static void delete(String id, String collectionName) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("_id", new ObjectId(id));
delete(map, collectionName);
}
/**
* 删除全部
* <br>------------------------------<br>
* @param collectionName
*/
public static void deleteAll(String collectionName) {
getCollection(collectionName).drop();
}
/**
* 修改操作</br>
* 会用一个新文档替换现有文档,文档key结构会发生改变</br>
* 比如原文档{"_id":"123","name":"zhangsan","age":12}当根据_id修改age
* value为{"age":12}新建的文档name值会没有,结构发生了改变
* <br>------------------------------<br>
* @param whereMap
* @param valueMap
* @param collectionName
*/
public static void update(Map<String, Object> whereMap, Map<String, Object> valueMap, String collectionName) {
executeUpdate(collectionName, whereMap, valueMap, new UpdateCallback(){
public DBObject doCallback(DBObject valueDBObject) {
return valueDBObject;
}
});
}
/**
* 修改操作,使用$set修改器</br>
* 用来指定一个键值,如果键不存在,则自动创建,会更新原来文档, 不会生成新的, 结构不会发生改变
* <br>------------------------------<br>
* @param whereMap
* @param valueMap
* @param collectionName
*/
public static void updateSet(Map<String, Object> whereMap, Map<String, Object> valueMap, String collectionName) {
executeUpdate(collectionName, whereMap, valueMap, new UpdateCallback(){
public DBObject doCallback(DBObject valueDBObject) {
return new BasicDBObject("$set", valueDBObject);
}
});
}
/**
* 修改操作,使用$inc修改器</br>
* 修改器键的值必须为数字</br>
* 如果键存在增加或减少键的值, 如果不存在创建键
* <br>------------------------------<br>
* @param whereMap
* @param valueMap
* @param collectionName
*/
public static void updateInc(Map<String, Object> whereMap, Map<String, Integer> valueMap, String collectionName) {
executeUpdate(collectionName, whereMap, valueMap, new UpdateCallback(){
public DBObject doCallback(DBObject valueDBObject) {
return new BasicDBObject("$inc", valueDBObject);
}
});
}
/**
* 修改
* <br>------------------------------<br>
* @param collectionName
* @param whereMap
* @param valueMap
* @param updateCallback
*/
private static void executeUpdate(String collectionName, Map whereMap, Map valueMap, UpdateCallback updateCallback) {
DBObject whereDBObject = new BasicDBObject(whereMap);
DBObject valueDBObject = new BasicDBObject(valueMap);
valueDBObject = updateCallback.doCallback(valueDBObject);
getCollection(collectionName).update(whereDBObject, valueDBObject);
}
interface UpdateCallback {
DBObject doCallback(DBObject valueDBObject);
}
/**
* 获取集合(表)
* <br>------------------------------<br>
* @param collectionName
* @return
*/
public static DBCollection getCollection(String collectionName) {
return db.getCollection(collectionName);
}
}
相关推荐
MongoDB总结
1.MongoDB 1.1.MongoDB简介 MongoDB是一个基于分布式文件存储的数据库,由C++语言编写。为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库中功能最丰富的,最像关系数据库的,它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。 MongoDB最大的特点是它支持的查询...
Java操作mongodb增删改查的基本操作
删除一条数据:db.集合名称.remove({name:“张三”},{justOne:true});db.集合名称.find().limit(number).skip(number);增加多条数据:db.集合名称.insert({name:“张三”,sex:"男"});db.集合名称.update({查询条件},{$inc:{字段名:number(1)}})9.修改数据:db.集合名称.update({查询条件},{$set:{更新内容}},包含张的内容:db.集合名称.find({name:/张/})
利用Virtuoso IC 618进行LDO稳定性分析与补偿设计
本文详细介绍了如何利用Virtuoso IC 618进行LDO稳定性分析与补偿设计。通过搭建仿真环境、运行STB分析诊断环路问题,并深入探讨密勒补偿、调零电阻等关键技术,帮助工程师在Virtuoso平台中高效完成LDO的稳定性优化与验证,确保芯片在各种工艺角下的鲁棒性。
Java API操作MongoDB
本文介绍了怎样通过javaAPI连接操作MongoDB数据库。
麒麟信安3.3-6C电网版虚拟机安装避坑指南:从ISO下载到SSH配置全流程
本文提供麒麟信安3.3-6C电网版虚拟机的详细安装与配置指南。针对电力行业仿真测试需求,重点解析从ISO镜像获取、虚拟机环境准备、安装过程中的三大“雷区”(如多管理员密码逻辑、分区方案、网络配置)到首次启动后的网络、SSH及root策略配置的全流程避坑要点,帮助技术人员高效、安全地完成部署。
浅谈车联网概述-1
车联网技术目前在车企中应用广泛,车联网通过车载传感器、无线通信等技术,能够将车辆上百的传感器数据上传至云端,当前智能网联车辆可以理解为一个“大号”手机。
java操作mongodb详解
java操作mongo,比较详细,适用生产环境
警惕AI依赖:如何避免数字水蛭侵蚀你的认知能力
在人工智能技术日益普及的今天,人机协作已成为现代工作流的核心范式。其原理在于通过算法模型辅助人类完成信息处理、内容生成等任务,从而提升效率。然而,过度依赖AI可能导致认知卸载,引发思考能力退化等潜在风险。从技术价值看,AI的核心在于增强而非替代人类智能,关键在于建立健康的协作模式。在应用场景上,无论是编程开发、内容创作还是决策分析,用户都需警惕工具依赖对深度工作、创造性思维和决策责任的侵蚀。本文聚焦于识别AI依赖的早期信号,并提供构建分阶段使用流程、将AI作为质疑者等具体策略,旨在帮助读者守护核心认知能力,
MongoDB的JAVA API操作增删改查及批处理
记得需要jar包驱动 mongo-java-driver-3.2.2.jar 而且连接的是无密码的Windows下的MongoDB 链接: https://pan.baidu.com/s/1TwDhAB-MkvhmahWWz22hEA 提取码: dj8y 别人的链接 创建数据库连接 public static MongoDatabase getMongoDB() { //创建客户端 //...
思科模拟器汉化教程(附带中文汉化包)
思科模拟器是一种模拟Cisco网络设备的软件工具。它可以模拟Cisco网络设备的所有功能,包括路由器、交换机、防火墙等,并提供了一个可视化的用户界面,让用户可以通过图形化的方式来管理网络设备。思科模拟器因其便捷、易用的特点被广泛应用于网络工程师的实验、测试和培训等方面思科模拟器的功能是强大的,但当我们在使用思科模拟器的时候就会有一些烦恼,由于思科是全球最大的企业级网络设备供应商之一。思科公司的产品和服务被广泛应用于各种领域和行业,所以思科模拟器默认是全英文的,但是在最新版本中是支持中文的。
基于STM32L4XX、HAL库的MMA8452QR1姿态传感器驱动程序设计
/ HAL库需要左移1位。#define MMA8452Q_I2C_ADDRESS 0x1D // SA0=1时的地址。* @param range: 量程(MMA8452Q_RANGE_2G/4G/8G)* @param haccel: MMA8452Q句柄。* @param haccel: MMA8452Q句柄。* @param haccel: MMA8452Q句柄。* @param haccel: MMA8452Q句柄。* @param haccel: MMA8452Q句柄。
在Ubuntu上MongoDB的操作和使用
一、环境配置 1.安装及检查版本 sudo apt-get install mongodb //安装MongoDB mongo -version //安装之后检测版本 测试出现如下图则安装成功 2.服务的启动 sudo service mongodb start //启动MongoDB服务 sudo service mon...
【HAL库】STM32CubeMX开发----STM32F407----ETH+LWIP----TCPclient客户端
STM32F407开发板 为TCPclient客户端,PC端 为TCPserver服务端,相互之间的发送和接收实验。
java使用MongoDB 及window下MongoDB安装使用
1、下载MongoDB对应版本zip,这些只介绍windows版本 http://www.mongodb.org/downloads 2、把下载的zip下bin下exe拷贝到新的一个文件例如:F:\Program Files\MongoDB 2.6 Standard\bin下,外面创建data和log目录 3、cmd进入对应目录F:\Program Files\MongoDB
智能手表 BOM 表与版本管理记录
试产与量产阶段 智能手表 BOM 表与版本管理记录
廖雪峰Python教程[完整版]
廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白
Mongodb java api操作
/update.pushAll("interest", new String[]{".net","mq"}) 用法同push,只是pushAll一定可以追加多个值到一个数组字段内。//一定是查询出来的DBObject,否则会丢掉一些列,整体更新。
怀旧版电脑GBC模拟器
再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。
MongoDB 通过 Maven 用 Java API 进行增删改查
1. 源码/** * App.java */ package com.jiecxy;import com.mongodb.Block; import com.mongodb.MongoClient; import com.mongodb.client.FindIterable; import com.mongodb.client.MongoCollection; import com.mongo
visio安装包
Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。
mongodb java api常用方法的使用以及和spring的集成使用
本篇文章主要介绍了mongodb对应java的常用增删改查的api,以及和spring集成后mongoTemplate的常用方法使用,废话不多说,直接上代码: 1.首先上需要用到的两个实体类User和Home,对应用户和家乡 import java.util.List; import org.springframework.data.mongodb.core.mapping.Document
723



被折叠的 条评论
为什么被折叠?



