「JAVAmongo排序」mongoose排序
今天给各位分享JAVAmongo排序的知识,其中也会对mongoose排序进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、java对所有mongodb表进行增删改查表名怎么设置
- 2、mongo排序 DBCollectionWraper.sort
- 3、java来操作mongodb,排序和limit是在客户端做的吗
- 4、java培训都有哪些课程
java对所有mongodb表进行增删改查表名怎么设置
一、MongoDB数据库参数配置
1、推荐使用mongodb.cfg.properties配置,则在构造MongoDBService对象的时候只需调用无参构造方法即可自动完成配置。
2、如果没有通过mongodb.cfg.properties,会采用程序指定的默认配置。
// 定义默认配置,1、IP地址 2、端口号 3、用户名 4、密码 5、配置文件位置名 6、数据库名 private static final String MONGODB_ADDRESS = "127.0.0.1"; private static final int MONGODB_PORT = 27017; private static final String MONGODB_USERNAME = "root"; private static final String MONGODB_PASSWORD = ""; private static final String MONGODB_RESOURCE_FILE = "mongodb.cfg.properties"; private static final String MONGODB_DBNAME = "test"; private static final String MONGODB_COLLECTIONNAME = "test";
3、通过有参构造方法构造MongoDBService对象或通过get/set方法,指定数据库及集合,优先级最高。
//有参构造方法,指定数据库名与集合名 public MongoDBServiceImpl(String dbName, String collName) { this.dbName = dbName; this.collName = collName; try { db = getDb(); } catch (Throwable e) { e.printStackTrace(); } } //无参构造方法,返回配置文件配置的数据库对象引用,如果配置文件中没有设置则返回默认数据库对象引用 public MongoDBServiceImpl() { getDb(); } /* * 获取数据库对象,3种情况(优先级从高到低):span style="white-space: pre" /span *1、构造方法指定2、配置文件指定3、默认数据库span style="white-space: pre" /span *(情况2、3在MongoDButil中设置) */ public DB getDb() { if (this.db == null) { if (this.dbName == null) { this.db = MongoDBUtil.getDB(); } else { this.db = MongoDBUtil.getDBByName(this.dbName); } } return this.db; } /* * 获取集合对象,3种情况(优先级从高到低): *1、构造方法指定2、配置文件指定3、默认数据库 *(情况2、3在MongoDButil中设置) */ public DBCollection getCollection() { if(this.collName != null){ return db.getCollection(this.collName); } else { return MongoDBUtil.getDBCollection(); } }
二、方法简介(具体实现参看MongoDBServiceImpl接口实现类)
1、获取基本信息或对象:
(1)、获取数据库名: getDbName()
(2)、设置数据库名(指定数据库): setDbName(String dbName)
(3)、获取集合名: getCollName()
(4)、设置集合名(指定集合): setCollName(String collName)
(5)、获取数据库对象: getDb()
2、数据插入方式:
(1)、插入单条数据: insert(DBObject obj)
(2)、插入多条数据: insertBatch(List list)void
3、数据删除方式:
(1)、删除单条数据: delete(DBObject obj)
(2)、删除多条数据: deleteBatch(List list)
4、数量统计方式:
(1)、获取集合中数据数量: getCollectionCount()
(2)、获取符合条件的数据数量: getCount(DBObject obj)
5、查找数据:
(1)、查找所有数据: findAll()
(2)、查找符合条件的数据: find(DBObject obj)
(3)、查找符合条件的数据并排序: find(DBObject query, DBObject sort)
(4)、查找符合条件的指定数量的数据并排序:find(DBObject query, DBObject sort, int start, int limit)
(5)、由ID查找数据: getById(String id)
6、更新数据 :update(DBObject setFields, DBObject whereFields) void
7、打印List: printListDBObj(List list)
测试代码:(@Test)
public class testMongoService { //使用mongodb.cfg.properties中配置的数据库与集合,如未指定,使用MongoDBUtil中默认的数据库与集合 MongoDBService mongoDBService1 = new MongoDBServiceImpl(); //测试插入数据 @Test public void testInsert(){ //数据一,包括用户名、密码,地址信息(省份、城市),爱好[…] BasicDBList dbList1 = new BasicDBList(); dbList1.add("basketball"); dbList1.add("music"); dbList1.add("web"); DBObject dbObject1 = new BasicDBObject("username","insert1") .append("age", 18) .append("address", new BasicDBObject("province","广东").append("city", "广州")) .append("favourite", dbList1); //数据二 BasicDBList dbList2 = new BasicDBList(); dbList2.add("football"); dbList2.add("music"); DBObject dbObject2 = new BasicDBObject("username","insert2") .append("age", 18) .append("address", new BasicDBObject("province","陕西").append("city", "西安")) .append("favourite", dbList2); //数据三 BasicDBList dbList3 = new BasicDBList(); dbList3.add("Linux"); DBObject dbObject3 = new BasicDBObject("username","insert3") .append("age", 18) .append("address", new BasicDBObject("province","河北").append("city", "保定")) .append("favourite", dbList3); //数据四 BasicDBList dbList4 = new BasicDBList(); dbList4.add("swim"); dbList4.add("android"); DBObject dbObject4 = new BasicDBObject("username","insert4") .append("age", 18) .append("address", new BasicDBObject("province","四川").append("city", "成都")) .append("favourite", dbList4); //数据五 DBObject dbObject5 = new BasicDBObject("username", "insert5") .append("age", 28) .append("address", new BasicDBObject("city", "杭州")); mongoDBService1.printListDBObj(mongoDBService1.findAll()); System.out.println("——————————————————insert collection——————————————————"); Listdbobject list = new ArrayListdbobject(); list.add(dbObject1); list.add(dbObject2); list.add(dbObject3); list.add(dbObject5); mongoDBService1.insertBatch(list); System.out.println("——————————————————insert one——————————————————"); mongoDBService1.insert(dbObject4); mongoDBService1.printListDBObj(mongoDBService1.findAll()); } //测试查询数据 @Test public void testFind(){ DBObject dbObject = new BasicDBObject("username","insert1"); System.out.println("数量:" + mongoDBService1.getCollectionCount()); System.out.println("username=java的数据数量:" + mongoDBService1.getCount(dbObject)); System.out.println("——————————————————find all——————————————————"); mongoDBService1.printListDBObj(mongoDBService1.findAll()); System.out.println("——————————————————find obj——————————————————"); mongoDBService1.printListDBObj(mongoDBService1.find(dbObject)); System.out.println("——————————————————find sort——————————————————"); mongoDBService1.printListDBObj(mongoDBService1.find(new BasicDBObject(), new BasicDBObject("age", 1))); System.out.println("——————————————————find sort limit——————————————————"); mongoDBService1.printListDBObj(mongoDBService1.find(new BasicDBObject(), new BasicDBObject("age", 1), 1, 2)); } //测试数据更新 @Test public void testUpdate(){ BasicDBObject newDocument = new BasicDBObject("$set",new BasicDBObject("age",11)); BasicDBObject searchQuery = new BasicDBObject().append("username", "insert2"); mongoDBService1.printListDBObj(mongoDBService1.find(searchQuery)); System.out.println("——————————————————update——————————————————"); mongoDBService1.update(newDocument, searchQuery); mongoDBService1.printListDBObj(mongoDBService1.find(searchQuery)); } //测试数据删除 @Test public void testDelete(){ DBObject dbObject1 = new BasicDBObject("username", "insert1"); DBObject dbObject2 = new BasicDBObject("username", "insert2"); DBObject dbObject3 = new BasicDBObject("username", "insert3"); DBObject dbObject4 = new BasicDBObject("username", "insert4"); DBObject dbObject5 = new BasicDBObject("username", "insert5"); Listdbobject list = new ArrayListdbobject(); list.add(dbObject1); list.add(dbObject2); list.add(dbObject3); list.add(dbObject4); mongoDBService1.printListDBObj(mongoDBService1.findAll()); System.out.println("——————————————————delete list——————————————————"); mongoDBService1.deleteBatch(list); System.out.println("——————————————————delete one——————————————————"); mongoDBService1.delete(dbObject5); //System.out.println("——————————————————delete all——————————————————"); //mongoDBService1.delete(new BasicDBObject()); mongoDBService1.printListDBObj(mongoDBService1.findAll()); }}/dbobject/dbobject/dbobject/dbobject
测试结果:
源代码:(完整项目文件下载链接:点击打开链接)
MongoDBServiceImpl.java
public class MongoDBServiceImpl implements MongoDBService { private String dbName; private String collName; private DB db; //有参构造方法,指定数据库名与集合名 public MongoDBServiceImpl(String dbName, String collName) { this.dbName = dbName; this.collName = collName; try { db = getDb(); } catch (Throwable e) { e.printStackTrace(); } } //无参构造方法,返回配置文件配置的数据库对象引用,如果配置文件中没有设置则返回默认数据库对象引用 public MongoDBServiceImpl() { getDb(); } /* * 获取数据库对象,3种情况(优先级从高到低): *1、构造方法指定2、配置文件指定3、默认数据库 *(情况2、3在MongoDButil中设置) */ public DB getDb() { if (this.db == null) { if (this.dbName == null) { this.db = MongoDBUtil.getDB(); } else { this.db = MongoDBUtil.getDBByName(this.dbName); } } return this.db; } /* * 获取集合对象,3种情况(优先级从高到低): *1、构造方法指定2、配置文件指定3、默认数据库 *(情况2、3在MongoDButil中设置) */ public DBCollection getCollection() { if(this.collName != null){ return db.getCollection(this.collName); } else { return MongoDBUtil.getDBCollection(); } } public DBObject map2Obj(Mapstring, object="" map) { DBObject obj = new BasicDBObject(); if (map.containsKey("class") map.get("class") instanceof Class) map.remove("class"); obj.putAll(map); return obj; } //插入数据 public void insert(DBObject obj) { getCollection().insert(obj); } //插入多条数据 public void insertBatch(Listdbobject list) { if (list == null || list.isEmpty()) { return; } Listdbobject listDB = new ArrayListdbobject(); for (int i = 0; i list.size(); i++) { listDB.add(list.get(i)); } getCollection().insert(listDB); } //删除数据 public void delete(DBObject obj) { getCollection().remove(obj); } //删除多条数据 public void deleteBatch(Listdbobject list) { if (list == null || list.isEmpty()) { return; } for (int i = 0; i list.size(); i++) { getCollection().remove(list.get(i)); } } //获取集合中的数据数量 public long getCollectionCount() { return getCollection().getCount(); } //查找符合条件的数据数量 public long getCount(DBObject obj) { if (obj != null) return getCollection().getCount(obj); return getCollectionCount(); } //查找符合条件的数据 public Listdbobject find(DBObject obj) { DBCursor cur = getCollection().find(obj); return DBCursor2list(cur); } //查找符合条件的数据并排序 @Override public Listdbobject find(DBObject query, DBObject sort) { DBCursor cur; if (query != null) { cur = getCollection().find(query); } else { cur = getCollection().find(); } if (sort != null) { cur.sort(sort); } return DBCursor2list(cur); } //查找符合条件的数据并排序,规定数据个数 @Override public Listdbobject find(DBObject query, DBObject sort, int start, int limit) { DBCursor cur; if (query != null) { cur = getCollection().find(query); } else { cur = getCollection().find(); } if (sort != null) { cur.sort(sort); } if (start == 0) { cur.batchSize(limit); } else { cur.skip(start).limit(limit); } return DBCursor2list(cur); } //将DBCursor转化为listdbobject private Listdbobject DBCursor2list(DBCursor cur) { Listdbobject list = new ArrayListdbobject(); if (cur != null) { list = cur.toArray(); } return list; } //更新数据 public void update(DBObject setFields, DBObject whereFields) { getCollection().updateMulti(whereFields, setFields); } //查询集合中所有数据 public Listdbobject findAll() { DBCursor cur = getCollection().find(); Listdbobject list = new ArrayListdbobject(); if (cur != null) { list = cur.toArray(); } return list; } //由ID获取数据 public DBObject getById(String id) { DBObject obj = new BasicDBObject(); obj.put("_id", new ObjectId(id)); DBObject result = getCollection().findOne(obj); return result; } public String getDbName() { return dbName; } public void setDbName(String dbName) { this.dbName = dbName; this.db = MongoDBUtil.getDBByName(this.dbName); } public String getCollName() { return collName; } public void setCollName(String collName) { this.collName = collName; } @Override public void printListDBObj(Listdbobject list) { // TODO Auto-generated method stub for(DBObject dbObject: list){ System.out.println(dbObject); } } }/dbobject/dbobject/dbobject/dbobject/dbobject/dbobject/dbobject/dbobject/dbobject/dbobject/dbobject/dbobject/dbobject/dbobject/dbobject/string,
MongoDBUtil.java
public class MongoDBUtil { // 定义默认配置,1、IP地址 2、端口号 3、用户名 4、密码 5、配置文件位置名 6、数据库名 private static final String MONGODB_ADDRESS = "127.0.0.1"; private static final int MONGODB_PORT = 27017; private static final String MONGODB_USERNAME = "root"; private static final String MONGODB_PASSWORD = ""; private static final String MONGODB_RESOURCE_FILE = "mongodb.cfg.properties"; private static final String MONGODB_DBNAME = "test"; private static final String MONGODB_COLLECTIONNAME = "test"; // 定义静态变量,1、Mongo对象(代表数据库连接)2、DB对象(代表数据库)3、集合名4、数据库相关配置映射集合5、已获取的数据库连接 private static Mongo mongo; private static DB db; private static DBCollection collection; private static Mapstring, string="" cfgMap = new HashMapstring, string=""(); private static Hashtablestring, db="" mongoDBs = new Hashtablestring, db=""(); /** * 初始化Mongo的数据库 */ static { init(); } /** * 获取配置文件中配置的DB对象 */ public static DB getDB() { return db; } /** * 获取配置文件中配置的DBCollection对象 */ public static DBCollection getDBCollection() { return collection; } /** * 根据数据库名称,得到数据库 如果不存在,则创建一个该名称的数据库,并设置用户名和密码为配置文件中的参数值 * * @param dbName * @return DB */ @SuppressWarnings("deprecation") public static DB getDBByName(String dbName) { DB db = mongo.getDB(dbName); if (!mongoDBs.contains(db)) { System.out.println("add"); db.addUser(cfgMap.get("mongo.db.username"), cfgMap.get("mongo.db.password").toCharArray()); mongoDBs.put(dbName, db); } return db; } // ————————————————————————————————————初始化过程———————————————————————————————————— /** * 获取配置文件mongedb.cfg.properties的文件对象 */ public static File getConfigFile() { String path = MongoDBUtil.class.getResource("/").getPath(); String fileName = path + MONGODB_RESOURCE_FILE; System.out.println(fileName); File file = new File(fileName); if (file.exists()) { return file; } return null; } /** * 通过mongedb.cfg.properties配置文件初始化配置映射集合,如果没有编写配置文件,则加载程序指定的默认配置 */ @SuppressWarnings("unchecked") private static void initCfgMap() { File file = getConfigFile(); if (file != null) { Properties p = new Properties(); try { p.load(new FileInputStream(file)); for (Enumeration enu = p.propertyNames(); enu.hasMoreElements();) { String key = (String) enu.nextElement(); String value = (String) p.getProperty(key); cfgMap.put(key, value); } } catch (IOException e) { System.out.println("加载Mongo配置文件失败!"); e.printStackTrace(); } } else { // 如果没有编写配置文件,则加载默认配置 cfgMap.put("mongo.db.address", MONGODB_ADDRESS); cfgMap.put("mongo.db.port", String.valueOf(MONGODB_PORT)); cfgMap.put("mongo.db.username", MONGODB_USERNAME); cfgMap.put("mongo.db.password", MONGODB_PASSWORD); cfgMap.put("mongo.db.dbname", MONGODB_DBNAME); cfgMap.put("mongo.db.collectionname", MONGODB_COLLECTIONNAME); } } /** * 初始化Mongo的数据库(将db指向相应对象引用,将collection指向相应对象引用,通过mongoDBs记录现有数据库对象) */ @SuppressWarnings("deprecation") private static void init() { initCfgMap(); try { String address = cfgMap.get("mongo.db.address"); int port = Integer.parseInt(cfgMap.get("mongo.db.port").toString()); String dbName = cfgMap.get("mongo.db.dbname"); String username = cfgMap.get("mongo.db.username"); String password = cfgMap.get("mongo.db.password"); String collectionName = cfgMap.get("mongo.db.collectionname"); mongo = new Mongo(address, port); if (dbName != null !"".equals(dbName)) { db = mongo.getDB(dbName); if (username != null !"".equals(username)) { db.addUser(username, password.toCharArray()); if (collectionName != null !"".equals(collectionName)) { collection = db.getCollection(collectionName); } } mongoDBs.put(dbName, db); } } catch (Exception e) { e.printStackTrace(); } } }
mongo排序 DBCollectionWraper.sort
MongoClient client = new MongoClient("192.168.0.110", 27017);DBCollection dbCollection = client.getDB("test").getCollection("update_array");dbCollection.drop();dbCollection = client.getDB("test").getCollection("update_array");BasicDBObject dbObject = new BasicDBObject();dbObject.append("id", 583739819102582565L).append("kids", Arrays.asList("1", "2", "3"));dbCollection.insert(dbObject);System.out.println(dbCollection.findOne());BasicDBObject dbObject2 = new BasicDBObject(dbObject);dbObject2.append("kids", Arrays.asList("1", "2", "3", "4"));dbCollection.update(dbObject, dbObject2);System.out.println(dbCollection.findOne());
测试结果:
{ "_id" : { "$oid" : "546f37f7d01de241a1e143e8"} , "id" : 583739819102582565 , "kids" : [ "1" , "2" , "3"]}
{ "_id" : { "$oid" : "546f37f7d01de241a1e143e8"} , "id" : 583739819102582565 , "kids" : [ "1" , "2" , "3" , "4"]}dependencygroupIdorg.mongodb/groupIdartifactIdmongo-java-driver/artifactIdversion2.12.3/version/dependency
java来操作mongodb,排序和limit是在客户端做的吗
distinct().sort().limit(10)
使用limit命令,至于前后要看你按照什么排序了,
limit会按照排序返回指定条数给你
java培训都有哪些课程
Java语言基础
1.Java基本概念
2.Java环境搭建
3.搭建Eclipse开发环境
4.基本类型
5.变量,运算符,表达式
6.分支语句,循环语句
7.数组,数组应用,行业规范。
8.双色球抽奖程序,实现权限管理命令
Java面向对象
1.类、对象、属性、方法、构造器
2.封装、继承、多态
3.重写、重载
4.访问权限控制符
5.this和super、static、final
6.抽象类和接口,内部类
7.单例设计模式
8.模板设计
JavaSE核心类库
1.Java核心类
2.Java字符串、日期处理
3.包装类、集合、数据结构
4.异常和异常处理
5.Java IO、NIO、多线程编程
6.线程同步机制、并发包
7.JAVA网络编程
8.Java泛型
9.Java反射机制
Java分析与设计
1.设计原则
2.设计模式
3.常见算法
4.Java8新特性
5.Maven使用
6.SVN版本管理
数据库开发
1.Oracle安装和管理
2.SQL语句
3.SQL语句原理
4.SQL语句优化
5.表、表设计原则
6.视图、序列、索引
7.Oracle数据字典
8.Oracle 数据库PL/SQL开发
9.存储过程、触发器、游标等
10.数据库设计原则
11.SQL优化技巧和原则
12.MySQL数据库安装
13.MySQL数据库维护
14.MySQL集群和读写分离
Web前端技术
1.XML语法、DTD和Schema
2.XML解析,DOM/SAX/DOM4J
3.XPATH技术应用
4.HTML5(H5)基本文档结构
5.标题、图片标记、链接、列表、表格标记
6.表单标记
7.CSS基础语法
8.CSS文本、列表、表格样式
9.CSS盒子模型
10.CSS浮动布局、定位
11.JavaScript语言基础
12.JavaScript闭包和自执行
13.JavaScript DOM编程
14.JavaScript事件模型
15.Window对象模型
16.HTML5画布、Web存储
17.地理定位、音频/视频、拖放
18.WebSocket技术等
19.CSS3边框、背景、文本效果
20.CSS3字体、动画等
JDBC技术
1.JDBC 核心API
2.CRUP操作
3.Statement应用
4.PreparedStatement应用
5.预防SQL注入攻击
6.事务安全控制
7.数据库高并发控制
8.批处理技术
9.DAO封装模式
10.dbcp、c3p0等连接池应用
jQuery技术
1.基本语法
2.选择器
3.元素选择
4.属性操作
5.文档操作
6.CSS操作
7.动画效果
8.jQuery 插件
easyUI/Bootstrap/AJAX前端框架
1.Menu菜单
2.Layout布局、Panel面板
3.Tabs 标签页
4.Progressbar进度条
5.Tooltip提示框、Searchbox搜索框
6.Pagination 分页、Draggable可拖动
7.Tree树、Datagrid 数据网格
8.消息框、对话框
9.日历、日期时间、Slider滑块
10.Treegrid树形网格
11.Linkbutton 链接按钮
12.Bootstrap CSS
13.Bootstrap布局组件、Bootstrap插件
14.Bootstrap编辑器
15.highcharts图表组件
16.Ajax作用和原理
17.XMLHttpRequest对象
18.Ajax设计模式
19.JSON技术及Ajax应用
20.jQuery与Ajax技术
JSP Servlet技术
1.Tomcat配置和部署
2.Servlet生命周期
3.Servlet编写规范和配置
4.中文接收乱码处理
5.Servlet过滤器和监听器
6.Servlet+DAO工厂模式应用
7.JSP 基本语法
8.JSP标记应用
9.JSP内置对象request、session、application、exception等
10.JSTL和 EL表达式
11.JSP新特性
12.MVC设计模式
Spring框架
1.Spring IOC概念
2.ApplicationContext\Factory
Bean
3.IOC对象创建和生命周期
4.IOC注入技巧
5.对象高级装配
6.组件扫描特性
7.Spring JDBC支持
8.Spring 事务及安全管理
9.Spring MVC框架
10.Spring国际化
11.RESTFUL 技术
12.SpringAOP原理、AspectJ
13.Spring Security
14.Spring整合Shiro
SpringBoot/SpringCloud框架
1.SpringBoot Servlet
2.SpringBoot过滤器
3.SpringBoot监听器
4.SpringBoot拦截器
5.SpringBoot启动加载
6.SpringBoot数据库连接
7.SpringBoot多数据源
8.SpringBoot动态数据源
9.SpringBoot事务控制
10.SpringBoot Shiro 权限管理
11.SpringBoot JDBC访问数据库
12.SpringBoot MyBatis访问数据库
13.SpringCloud分布式配置管理
14.SpringCloud服务注册
MyBatis框架
1.MyBatis体系结构
2.SqlSession的使用
3.MyBatis映射基础
4.DQL 映射,DML映射
5.resultType/resultMap结果映射
6.Mapper映射器
7.MyBatis分页原理和优化
8.高级动态SQL映射
9.多表关联映射
10.Spring和MyBatis整合
SSH框架
1.Struts2结构和控制流程
2.Struts2 Action应用
3.ActionContext和ServletActionContext
4.Aware接口注入
5.Interceptor拦截器原理
6.Interceptor自定义应用
7.内置Result原理
8.常用Result组件原理和使用
9.dispatcher、redirect、chain、redirectAction、stream、json等
10.ValueStack原理和OGNL应用
11.Struts2 标记库、Struts2 扩展
12.Struts2和Spring整合应用
13.Hibernate Session API
14.Hibernate实体映射技术
15.Hibernate 关联映射技巧
16.HQL查询、Criteria查询、Native SQL查询
17.延迟加载、持久化、缓存技术
18.SSH整合应用
NoSQL技术
1.Redis原理
2.Redis命令
3.Java Redis API
4.Redis 字符串操作命令
5.Redis 哈希操作命令
6.Redis列表操作命令
7.Redis集合操作命令
8.Redis 有序集合操作命令
9.Redis事务处理、备份和恢复
10.Redis消息发布系统
11.Redis分布式环境
12.MongoDb原理
13.MongoDb命令
14.Java MongoDb API
15.MongoDb排序、索引
16.MongoDb备份恢复
企业开发扩展技术
1.WebService
2.Axis2/CXF创建、发布
3.CXF与Spring集成
4.ActiveMQ消息总线
5.activiti工作流
6.jfreechart图表
7.JasperReport报表技术
8.lucene引擎
9.dubbo分布式架构
10.第三方支付平台
11.第三方短信平台
JAVAmongo排序的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于mongoose排序、JAVAmongo排序的信息别忘了在本站进行查找喔。
发布于:2022-12-05,除非注明,否则均为
原创文章,转载请注明出处。