mongodb- Java API 查询操作

汽车安全新防线|基于AI的入侵检测系统开发(全网独家复现),CNN-BiLSTM融合改进篇 强化CAN总线数据感知、助力多类型入侵检测、实时响应预警、车载场景有效落地 基于AI的入侵检测系统是汽车网络安全领域的重要技术突破,能够有效应对日益复杂的网络攻击威胁。随着AI技术的不断发展和普及,AI入侵检测系统将在汽车安全领域发挥越来越重要的作用。对于汽车制造商和供应商来说,实施AI入侵检测系统不仅是保障车辆安全的需要,也是提升市场竞争力的重要手段。未来,AI入侵检测系统将成为智能汽车的标准配置,为用户提供更加安全、可靠的驾驶体验。 阅读详情
package com.x.mongodb;

import java.net.UnknownHostException;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;

import org.bson.types.BasicBSONList;
import org.bson.types.ObjectId;

import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.Mongo;
import com.mongodb.MongoException;

/**
 * 查询</br>
 *  : $in	{ "name1" : { "$in" : [ "zhou28-1" , "zhou29"]}}</br>
 *  : $nin	{ "age" : { "$nin" : [ 1 , 2]}}
 *  : $or	{ "$or" : [ { "name1" : { "$in" : [ "zhou28-1" , "zhou29"]}}]}</br>
 *  : $or and{ "$or" : [ { "name1" : { "$in" : [ "zhou28-1" , "zhou29"]}}] , "name2" : "zhou"}</br>
 *  : 范围查询 { "age" : { "$gte" : 2 , "$lte" : 21}}</br>
 *  : $ne	{ "age" : { "$ne" : 23}}</br>
 *  : $lt 	{ "age" : { "$lt" : 23}}
 * @author <a href="http://blog.youkuaiyun.com/java2000_wl">java2000_wl</a>
 * @version <b>1.0</b>
 */
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 collectionName
	 * @return
	 */
	public static boolean collectionExists(String collectionName) {
		return db.collectionExists(collectionName);
	}
	
	/**
	 * 查询单个,按主键查询 
	 * <br>------------------------------<br>
	 * @param id  
	 * @param collectionName
	 */
	public static void findById(String id, String collectionName) {
		Map<String, Object> map = new HashMap<String, Object>();
		map.put("_id", new ObjectId(id));
		findOne(map, collectionName);
	}
	
	/**
	 * 查询单个
	 * <br>------------------------------<br>
	 * @param map
	 * @param collectionName
	 */
	public static void findOne(Map<String, Object> map, String collectionName) {
		DBObject dbObject = getMapped(map);
		DBObject object = getCollection(collectionName).findOne(dbObject);
		print(object);
	}
	
	/**
	 * 查询全部
	 * <br>------------------------------<br>
	 * @param cursor
	 * @param collectionName
	 */
	public static void findAll(CursorObject cursor, String collectionName) {
		find(new HashMap<String, Object>(), cursor,  collectionName);
	}
	
	/**
	 * count
	 * <br>------------------------------<br>
	 * @param map
	 * @param collectionName
	 * @return
	 */
	public static long count(Map<String, Object> map, String collectionName) {
		DBObject dbObject = getMapped(map);
		return getCollection(collectionName).count(dbObject);
		
	}
	
	/**
	 * 按条件查询 </br>
	 * 支持skip,limit,sort
	 * <br>------------------------------<br>
	 * @param map
	 * @param cursor
	 * @param collectionName
	 */
	public static void find(Map<String, Object> map, CursorObject cursor, String collectionName) {
		DBObject dbObject = getMapped(map);
		find(dbObject, cursor, collectionName);
	}
	
	/**
	 * 查询
	 * <br>------------------------------<br>
	 * @param dbObject
	 * @param cursor
	 * @param collectionName
	 */
	public static void find(DBObject dbObject, final CursorObject cursor,  String collectionName) {
		CursorPreparer cursorPreparer  = cursor == null ? null : new CursorPreparer() {
			public DBCursor prepare(DBCursor dbCursor) {
				if (cursor == null) {
					return dbCursor;
				}
				if (cursor.getLimit() <= 0 && cursor.getSkip() <=0 && cursor.getSortObject() == null) {
					return dbCursor;
				}
				DBCursor cursorToUse = dbCursor;
				if (cursor.getSkip() > 0) {
					cursorToUse = cursorToUse.skip(cursor.getSkip());
				}
				if (cursor.getLimit() > 0) {
					cursorToUse = cursorToUse.limit(cursor.getLimit());
				}
				if (cursor.getSortObject() != null) {
					cursorToUse = cursorToUse.sort(cursor.getSortObject());
				}
				return cursorToUse;
			}
		};
		find(dbObject, cursor, cursorPreparer, collectionName);
	}
	
	/**
	 * 查询
	 * <br>------------------------------<br>
	 * @param dbObject
	 * @param cursor
	 * @param cursorPreparer
	 * @param collectionName
	 */
	public static void find(DBObject dbObject, CursorObject cursor, CursorPreparer cursorPreparer, String collectionName) {
		DBCursor dbCursor = getCollection(collectionName).find(dbObject);
		if (cursorPreparer != null) {
			dbCursor = cursorPreparer.prepare(dbCursor);
		}
		Iterator<DBObject> iterator = dbCursor.iterator();
		while (iterator.hasNext()) {
			print(iterator.next());
		}
	}
	
	/**
	 * 获取集合(表)
	 * <br>------------------------------<br>
	 * @param collectionName
	 * @return
	 */
	public static DBCollection getCollection(String collectionName) {
		return db.getCollection(collectionName);
	}
	
	/**
	 * 获取所有集合名称
	 * <br>------------------------------<br>
	 * @return
	 */
	public static Set<String> getCollection() {
		return db.getCollectionNames();
	}
	
	/**
	 * 创建集合
	 * <br>------------------------------<br>
	 * @param collectionName
	 * @param options
	 */
	public static void createCollection(String collectionName, DBObject options) {
		db.createCollection(collectionName, options);
	}
	
	/**
	 * 删除
	 * <br>------------------------------<br>
	 * @param collectionName
	 */
	public static void dropCollection(String collectionName) {
		DBCollection collection = getCollection(collectionName);
		collection.drop();
	}
	
	/**
	 * 
	 * <br>------------------------------<br>
	 * @param map
	 * @return
	 */
	private static DBObject getMapped(Map<String, Object> map) {
		DBObject dbObject = new BasicDBObject();
		Iterator<Entry<String, Object>> iterable = map.entrySet().iterator();
		while (iterable.hasNext()) {
			Entry<String, Object> entry = iterable.next();
			Object value = entry.getValue();
			String key = entry.getKey();
			if (key.startsWith("$") && value instanceof Map) {
				BasicBSONList basicBSONList = new BasicBSONList();
				Map<String, Object> conditionsMap = ((Map)value);
				Set<String> keys = conditionsMap.keySet();
				for (String k : keys) {
					Object conditionsValue = conditionsMap.get(k);
					if (conditionsValue instanceof Collection) {
						conditionsValue =  convertArray(conditionsValue);
					}
					DBObject dbObject2 = new BasicDBObject(k, conditionsValue);
					basicBSONList.add(dbObject2);
				}
				value  = basicBSONList;
			} else if (value instanceof Collection) {
				value =  convertArray(value);
			} else if (!key.startsWith("$") && value instanceof Map) {
				value = getMapped(((Map)value));
			}
			dbObject.put(key, value);
		}
		return dbObject;
	}
	
	private static Object[] convertArray(Object value) {
		Object[] values = ((Collection)value).toArray();
		return values;
	}
	
	private static void print(DBObject object) {
		Set<String> keySet = object.keySet();
		for (String key : keySet) {
			print(object.get(key));
		}
	}
	
	private static void print(Object object) {
		System.out.println(object.toString());
	}
}
package com.x.mongodb;

/**
 * 排序规则
 * @author <a href="http://blog.youkuaiyun.com/java2000_wl">java2000_wl</a>
 * @version <b>1.0</b>
 */
public enum Order {
	
	ASC, DESC
}
package com.x.mongodb;

import java.util.LinkedHashMap;
import java.util.Map;

import com.mongodb.BasicDBObject;
import com.mongodb.DBObject;

/**
 * 排序对象
 * @author <a href="http://blog.youkuaiyun.com/java2000_wl">java2000_wl</a>
 * @version <b>1.0</b>
 */
public class Sort {

	/** key为排序的名称, value为顺序 */
	private Map<String, Order> field = new LinkedHashMap<String, Order>();

	public Sort() {
	}

	public Sort(String key, Order order) {
		field.put(key, order);
	}

	public Sort on(String key, Order order) {
		field.put(key, order);
		return this;
	}

	public DBObject getSortObject() {
		DBObject dbo = new BasicDBObject();
		for (String k : field.keySet()) {
			dbo.put(k, (field.get(k).equals(Order.ASC) ? 1 : -1));
		}
		return dbo;
	}
}
package com.x.mongodb;

import com.mongodb.DBCursor;


/**
 * 分页,排序处理
 * @author <a href="http://blog.youkuaiyun.com/java2000_wl">java2000_wl</a>
 * @version <b>1.0</b>
 */
public interface CursorPreparer {

	DBCursor prepare(DBCursor cursor);
}
package com.x.mongodb;

import com.mongodb.DBObject;

/**
 * 分页,排序对象
 * @author <a href="http://blog.youkuaiyun.com/java2000_wl">java2000_wl</a>
 * @version <b>1.0</b>
 */
public class CursorObject {

	private int skip;
	
	private int limit;
	
	private Sort sort;
	
	public CursorObject skip(int skip) {
		this.skip = skip;
		return this;
	}

	public CursorObject limit(int limit) {
		this.limit = limit;
		return this;
	}
	
	public int getSkip() {
		return skip;
	}

	public int getLimit() {
		return limit;
	}

	public Sort sort() {
		if (this.sort == null) {
			this.sort = new Sort();
		}
		return this.sort;
	}
	
	public DBObject getSortObject() {
		if (this.sort == null) {
			return null;
		}
		return this.sort.getSortObject();
	}
}

经典的YOLOv3和YOLOV5算法详解及代码复现 yolov3和yolov5算法详解及代码复现 阅读详情

相关推荐

山景BP10_128DBG开发板ADC_Key驱动

最近在学习山景BP10_128DBG开发板,想使用开发板上的按键。看了看原理图和之前用过的按键好像有点不一样。常见的按键都是判断IO口是否被拉低或拉高来判断按键是否被按下。山景BP10_128DBG开发板上的按键是ADC按键,每个按键按下之后ADC的采样值是不同的,通过ADC采样回来的值进而判断哪个按键按下。这种方式核心思想就是用一个ADC通道来节约IO口,对于IO紧张的芯片是一个不错的解决思路。

weixin_56646002的博客 1311

MongoDB——JavaAPI详解

【代码】MongoDB——JavaAPI详解。

吴声子夜歌的博客 1715

Meta开源Ego-Exo4D数据集:如何用1400小时多模态视频训练你的AI模型

Meta开源的Ego-Exo4D数据集包含1400小时多模态视频,涵盖第一人称和第三人称视角、眼动追踪、IMU传感器等多种模态,是AI模型训练的宝贵资源。本文详细介绍了从数据集下载、预处理到模型训练的全流程,帮助研究者高效利用这一多模态数据集进行AI模型开发。

weixin_29159441的博客 342

Java API操作MongoDB

本文介绍了怎样通过javaAPI连接操作MongoDB数据库。

haokelaicds的博客 4389

Circos在Windows下的安装教程

这里写自定义目录标题Circos简介安装Perl 的安装Circos安装安装及解压安装Modules测试用例官方文档 Circos简介 (来源官网:http://circos.ca/software/readme/ O.INTRODUCTION部分) Circos is a program for the generation of publication-quality, circularly composited renditions of genomic data and related annot

qq_42318911的博客 1661

【YOLOv11改进- 主干网络】YOLOv11+WTConv(ECCV2024): 基于YOLOv11的主干网络改进,大感受野的小波卷积

论文提出了WTConv,这是一个使用级联小波分解的层,并执行一组小卷积核的卷积,每个卷积专注于输入的不同频率带,并具有越来越大的感受野。这个过程能够在输入中对低频信息给予更多重视,同时仅增加少量可训练参数。实际上,对于一个  的感受野,可训练参数数量只随着  的增长而呈对数增长。而WTConv与常规方法的参数平方增长形成对比,能够获得有效的卷积神经网络(CNN),其有效感受野(ERF)大小前所未有。

qq_41304809的博客 1401

使用Java API 操作MongoDB

本次每个操作都创建了一个.java文件,如下所示(不包含Java_mongodb.java和Main.java):遇到的问题:IDEA输出结果乱码!idea乱码解决方式大汇总_idea 乱码-优快云博客。

xuhuishao的博客 3642

【72】【OpenCV C++ & C#】 将cv::Mat 图像转换成imgINFO 传给c#在winform上显示,OpenCV C++如何将处理后的图像传给C#呢? 如何获取图像信息呢?

本文介绍了通过OpenCV C++处理图像后传递给C#的方法。首先定义了一个结构体imgINFO存储图像信息(数据指针、宽高、通道数等),然后通过getImgInfo函数将cv::Mat转换为该结构体。文章特别指出当图像宽度不能被4整除时可能出现失真问题,并给出了两种解决方案:调整输入图像或创建新的对齐图像。此外还解释了img.step和img.cols*img.elemSize()的关系,说明它们在大多数情况下是相等的。最后提到需要通过DLL将结构体传递给C#(具体方法参见其他文章)。

程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。 697

Java查询MongoDB案例大全

写在前面:实习期间做公司的任务,用的是MongoDB。刚接触感觉很多东西都不会,现在任务做完了。回过头来记录和巩固一下知识,也方面以后回来查阅。本篇博客只记录Mongodb的查询方法,方便查找!MongoDB 4.0以上版本!!1. 查询所有文档、 指定查询条件、指定查询返回的字段、限制返回文档的数量、排序、 匹配嵌套文档、使用聚合管道、分组查询

習習君的博客 7010

【Python】-- 趣味代码 - 发牌游戏

Python -- 趣味代码 - 发牌游戏

银尘博客 351

YOLO11涨点优化:损失函数优化 | 引入MPDIoU,利用边界框左上角和右下角距离,彻底解决重叠框匹配失效问题

【摘要】针对目标检测中重叠框匹配失效问题,本文提出基于MPDIoU损失函数的解决方案。MPDIoU通过同时约束边界框的左上角和右下角两点距离,有效解决了传统IoU损失在重叠场景下的优化歧义问题。文章首先分析YOLO系列在密集目标检测中的性能瓶颈,指出GIoU/CIoU等现有方法无法区分相同IoU值但偏移方向不同的预测框。随后详细解析MPDIoU的数学原理及其相对于主流损失函数的优势,证明两点距离约束能提供唯一优化方向。最后给出在YOLO11中实现MPDIoU的具体方案,包括核心代码修改点和架构适配建议。实验

2601_95807009的博客 172

Mongodb java api操作

/update.pushAll("interest", new String[]{".net","mq"}) 用法同push,只是pushAll一定可以追加多个值到一个数组字段内。//一定是查询出来的DBObject,否则会丢掉一些列,整体更新。

wade1010的专栏 1463

华为OD机考双机位C卷 - 评委评分 (Java & Python& JS & C/C++ & GO )

华为OD机考双机位C卷 - 评委评分 (OD上机考试双机位C卷)。提供在线OJ刷题。Java、C++、Python、GO语言、C语言、JavaScript题解,并提供完整思路讲解。

算法大师! 1750

mongodb java查询_mongodb- Java API 查询操作

package com.x.mongodb;import java.net.UnknownHostException;import java.util.Collection;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Map.Entry;import java.ut...

weixin_27697385的博客 311

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

mongodb java api_mongodb- Java API 查询操作

package com.x.mongodb;import java.net.UnknownHostException;importjava.util.Collection;import java.util.HashMap;importjava.util.Iterator;import java.util.Map;importjava.util.Map.Entry;import java.util....

weixin_39778400的博客 197

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

mongodb查询 java_mongodb- Java API 查询操作

package com.x.mongodb;import java.net.UnknownHostException;import java.util.Collection;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Map.Entry;import java.ut...

weixin_36410293的博客 184

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

MongoDB下的查询操作(与上篇文章java api查询操作对应)

<br />[root@localhost ~]# mongo MongoDB shell version: 1.8.1 connecting to: test > db test > show collections data_test system.indexes system.users > db.system.users.find() { "_id" : ObjectId("4dd73c7d247cb75e4995757b"), "user" : "iwtxokhtd", "r

1136

java mongodb api 中文_MongoDB下的查询操作(与Java API查询操作对应)

[root@localhost ~]# mongo MongoDB shell version: 1.8.1 connecting to: test gt; db test gt; show collections相关阅读:MongoDB Linux下的安装和启动MongoDB下的高级查询示例MongoDB Java API for 插入和单collection基本查询使用示例MongoDB下的查...

weixin_36294922的博客 164

mongodb java查询_MongoDB下的查询操作(与Java API查询操作对应)

相关阅读:[root@localhost ~]# mongoMongoDB shell version: 1.8.1connecting to: test> dbtest> show collectionsdata_testsystem.indexessystem.users> db.system.users.find(){ "_id" : ObjectId("4dd73c7d2...

weixin_36276359的博客 202

MongoDB下的查询操作(与Java API查询操作对应)

http://www.linuxidc.com/Linux/2011-05/36314.htm 好的一篇文章

专注于C/C++数据结构、算法的研究与探讨 174

mongodb java api

mongodb java api<br /><br />该文档是翻译自文档[mongodb-docs-2010-10-24.pdf]的[Java Language Center]章节,根据自己的理解整理而成。<br /><br />  希望能给像我这样开始接触的朋友一点帮助,同时也做个备忘,因为是刚刚学习,其中的很多功能目前都用不上,以后万一有什么功能不太清楚,也可以直接查阅该文档了。<br />  <br />    MongoDB Java Driver 简单操作<br />  <br />一、

duchunchao的专栏 6950

MongoDB java api for 插入和单collection基本查询使用示例

MongoDB java api for 插入和单collection基本查询使用示例

1423

java mongo driver_MongoDB Java Driver操作指南

MongoDB为Java提供了非常丰富的API操作,相比关系型数据库,这种NoSQL本身的数据也有点面向对象的意思,所以对于Java来说,Mongo的数据结构更加友好。MongoDB在今年做了一次重大升级,版本来到了3.0。相比之前的版本,这个版本中又很大的变化,相应地,本文中的方法可能在旧的版本中无法使用。安装MongoDB Java Driver使用maven的用户在pom.xml中使用以下的...

weixin_34342446的博客 768

[转]MongoDB插入和查询操作

MongoDB下的高级查询示例http://www.linuxidc.com/Linux/2011-05/36312.htm MongoDB Java API for 插入和单collection基本查询使用示例http://www.linuxidc.com/Linux/2011-05/36313.htm MongoDB下的查询操作(与Java API查询操作对应)http:...

a3amux18550的博客 129
上一篇: mongodb- Java API 增删改操作
下一篇: Spring整合- mongodb
胸口碎大石_
博客等级 码龄17年 1154粉丝 82原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值