Mongodb底层java驱动框架工具类使用
使用MongoDB需要对文档结构进行合理的设计,以满足某些特定需求。比如随机选取文档,使用skip跳过随机个文档就没有在文档中加个随机键, 然后使用某个随机数对文档进行查询高效,随机键还能添加索引,效率更高。合理选择,合理设计。 import java.net.Unknown
使用MongoDB需要对文档结构进行合理的设计,以满足某些特定需求。比如随机选取文档,使用skip跳过随机个文档就没有在文档中加个随机键,然后使用某个随机数对文档进行查询高效,随机键还能添加索引,效率更高。合理选择,合理设计。
import java.net.UnknownHostException; import java.util.Date; import java.util.List; import com.mongodb.BasicDBList; 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; import com.nerd.mongo.config.ConfigFactory; /** * MONGOS * @author chenlongquan * */ public class MongoUtil { private final static ThreadLocal<Mongo> mongos = new ThreadLocal<Mongo>(); public static DB getdb(){ return getMongos().getDB(ConfigFactory.getMongoConfig().getDb()); } public static Mongo getMongos() { Mongo mongo = mongos.get(); if (mongo == null) { try { mongo = new Mongo(ConfigFactory.getMongoConfig().getIp(),ConfigFactory.getMongoConfig().getPort()); mongos.set(mongo); } catch (UnknownHostException e) { e.printStackTrace(); } catch (MongoException e) { e.printStackTrace(); } } return mongo; } public static void close(){ Mongo mongo = mongos.get(); if(mongo!=null){ mongo.close(); mongos.remove(); } } /** * 获取集合(表) * * @param collection */ public static DBCollection getCollection(String collection) { return getdb().getCollection(collection); } ......................................................
例如:
/** * 插入 * * @param collection * @param o 插入 * */ public static void insert(String collection, DBObject o) { getCollection(collection).insert(o); } /** * 批量插入 * * @param collection * @param list * 插入的列表 */ public void insertBatch(String collection, List<DBObject> list) { if (list == null || list.isEmpty()) { return; } getCollection(collection).insert(list); }
测试用例:
insert("user1", new BasicDBObject().append("name", "admin3").append("type", "2").append("score", 70) .append("level", 2).append("inputTime", new Date().getTime()));
工具类使用:
/** * 删除 * * @param collection * @param q * 查询条件 */ public void delete(String collection, DBObject q) { getCollection(collection).remove(q); } /** * 批量删除 * * @param collection * @param list * 删除条件列表 */ public void deleteBatch(String collection, List<DBObject> list) { if (list == null || list.isEmpty()) { return; } for (int i = 0; i < list.size(); i++) { getCollection(collection).remove(list.get(i)); } } /** * 更新 * * @param collection * @param q * 查询条件 * @param setFields * 更新对象 */ public static void update(String collection, DBObject q, DBObject setFields) { getCollection(collection).updateMulti(q, new BasicDBObject("$set", setFields)); } /** * 查找集合所有对象 * * @param collection */ public static List<DBObject> findAll(String collection) { return getCollection(collection).find().toArray(); } /** * 按顺序查找集合所有对象 * * @param collection * 数据集 * @param orderBy * 排序 */ public static List<DBObject> findAll(String collection, DBObject orderBy) { return getCollection(collection).find().sort(orderBy) .toArray(); } /** * 查找(返回一个对象) * * @param collection * @param q * 查询条件 */ public static DBObject findOne(String collection, DBObject q) { return getCollection(collection).findOne(q); } /** * 查找(返回一个对象) * * @param collection * @param q * 查询条件 * @param fileds * 返回字段 */ public static DBObject findOne(String collection, DBObject q, DBObject fileds) { return getCollection(collection).findOne(q, fileds); } /** * 分页查找集合对象,返回特定字段 * * @param collection * @param q * 查询条件 * @param fileds * 返回字段 * @pageNo 第n页 * @perPageCount 每页记录数 */ public static List<DBObject> findLess(String collection, DBObject q, DBObject fileds, int pageNo, int perPageCount) { return getCollection(collection).find(q, fileds) .skip((pageNo - 1) * perPageCount).limit(perPageCount) .toArray(); }

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

VBILL代币基金于5月13日推出,为机构投资者提供了代币化的美国财政账单的机会。Vaneck的新型标记基金将使机构投资者能够投资美国国库账单。VBILL代币基金于5月13日启动,是与Securitize合作的结果,Securitize是支持该基金全部运营的令牌化平台。该基金将在四个主要区块链上进行订阅-以太坊,索拉纳,雪崩和BNB链。在其中三个区块链(雪崩,Solana和BNB链)上,最低订阅额为100,000美元。而在以太坊上,最低投资额为100万美元。该基金是Vaneck努力扩大其在现实世

5月19日将成为XRP市场的一个重要日子,因为这一天将举行正式发布会。这一举措反映了主要金融平台对XRP采用的热情不断增长。CME集团将在5月19日正式推出XRPFutures,这标志着机构投资者在XRP市场发展中的重要里程碑。发布日期由FuturesExchange正式宣布,强调了XRP市场的关键进展。这一行动是在主要金融平台对XRP采用的背景下进行的。CME几周前已经确认将增加XRP期货。这一确认是在CME最近推出SolanaFutures之后进行的,显示了该交易所扩展其产品至比特币和以太坊

在快速发展的去中心化金融(DeFi)世界中,创新从不止息。最新一波的浪潮不仅仅是关于速度或安全——而是关于智慧。这正是XploraDEX进入舞台的时候。建立在XRP纪录上的XploraDEX正在为去中心化交易所设定新的基准,通过将人工智慧(AI)引入交易的每一个层面。但XploraDEX到底是什么,它与其他平台有何不同,以及$XPL代币在其生态系统中扮演什么角色?让我们以易于理解的方式逐步解析。

在当今拥挤的加密市场中,炒作、猜测和不可预测的波动占据主导地位。在庞大且经常被宣传的加密货币市场中,持久的成功归结为真正的效用、创新和最终的牵引力。随着投资者和交易者寻求具有持久力量的项目,那些具有强大用例、基本稳定性和未来技术的项目越来越成为最前沿的,尤其是面对市场波动。这些特质在2025年脱颖而出的三个令牌是Web3AI(Wai)、Hedera(Hbar)和Polkadot(DOT)。每个人都带来了独特的东西:Web3AI的AI驱动交易平台、Hedera的企业使用可扩展性以及Polkadot

在VSCode中可以使用Git进行代码版本回退。1.使用gitreset--hardHEAD~1回退到上一个版本。2.使用gitreset--hard回退到特定提交。3.使用gitrevert安全回退而不改变历史记录。

在VSCode中编写JavaScript代码的最佳实践包括:1)安装Prettier、ESLint和JavaScript(ES6)codesnippets扩展,2)配置launch.json文件进行调试,3)使用现代JavaScript特性和优化循环来提高性能。通过这些设置和技巧,你可以在VSCode中更高效地开发JavaScript代码。

加密抢跑是什么?加密抢跑是如何形成的?如何避免加密抢跑?加密领域的抢跑利用未确认交易获利,借助区块链的透明性。了解交易者、机器人和验证者如何操纵交易排序,其对去中心化金融的影响,以及保护交易的可能方法。下面,脚本之家小编给大家详细介绍下加密抢跑吧!什么是加密领域的抢跑?抢跑长期以来一直是金融市场的问题。它起源于传统金融领域,指的是经纪人或内部人士利用特权信息,在客户之前进行交易。这种行为被认定为不道德且非法,监管机构会对此进行查处和
