test.sql
/*Drop Collections if exist */
db.menu.drop();
/* Initial Menu */
db.menu.insert({'name':'Roles','age':'12', 'url':'/account/getRoleList.do', 'group':'Account Managment','sequence':'01-01'});
db.menu.insert({'name':'Users','age':'22', 'url':'/account/getAccountList.do', 'group':'Account Managment','sequence':'01-02'});
db.menu.insert({'name':'Message Sending', 'age':'33','url':'/message/showSendMessage.do', 'group':'Messaging','sequence':'02-01'});
db.menu.insert({'name':'Message List', 'age':'15','url':'/message/messageList.do', 'group':'Messaging','sequence':'02-02'});
MongoDbTest
package com.cpkf.dao.mongo;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import java.util.regex.Pattern;
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;
public class MongoDbTest {
public static void test(){
Mongo mongo = null;
DB db = null;
InputStream is = null;
BufferedReader br = null;
StringBuffer sb = new StringBuffer();
String temp = "";
DBCursor dbCursor = null;
try {
//创建数据库连接
mongo = new Mongo("localhost",27017);
db = mongo.getDB("test");
//添加用户并验证用户权限
char[] pwd = {'r','o','o','t'};
db.addUser("root",pwd);
boolean flag = db.authenticate("root", pwd);
System.out.println(flag);
System.out.println("==================");
//初始化数据库
// is = MongoDbTest.class.getResourceAsStream("/conf/test.sql");
// br = new BufferedReader(new InputStreamReader(is,"utf-8"));
// while((temp = br.readLine()) != null){
// sb.append(temp);
// }
// db.eval(sb.toString());
//查看数据库列表
for(String s : mongo.getDatabaseNames()){
System.out.println(s);
}
System.out.println("==================");
//删除数据库
mongo.dropDatabase("admin");
//查看当前库下数据集列表
Set<String> collections = db.getCollectionNames();
for(String coll : collections){
System.out.println(coll);
}
System.out.println("==================");
//得到一个数据集的索引列表
DBCollection menuCollection = db.getCollection("menu");
List<DBObject> indexList = menuCollection.getIndexInfo();
for(DBObject object : indexList){
System.out.println(object);
}
System.out.println("==================");
//查询数据集第一条记录
DBObject firstDbObject = menuCollection.findOne();
System.out.println(firstDbObject);
System.out.println("==================");
//查询数据集所有记录
List<DBObject> menuList = menuCollection.find().toArray();
for(DBObject o : menuList){
System.out.println(o);
}
System.out.println("==================");
//以游标的形式
dbCursor = menuCollection.find();
while(dbCursor.hasNext()){
System.out.println(dbCursor.next());
}
System.out.println("==================");
//查询数据量
System.out.println(menuCollection.find().count());
System.out.println(menuCollection.find(new BasicDBObject("name","Roles")).count());
System.out.println("==================");
//带条件查询
BasicDBObject bo = new BasicDBObject();
bo.put("name", "Roles");
dbCursor = menuCollection.find(bo);
while(dbCursor.hasNext()){
System.out.println(dbCursor.next());
}
System.out.println("==================");
//分页查询-skip-跳过几条数据-limit-限制几条数据
dbCursor = menuCollection.find().skip(2).limit(2);
while(dbCursor.hasNext()){
System.out.println(dbCursor.next());
}
System.out.println("==================");
//比较查询"$gt": 大于 "$gte":大于等于 "$lt": 小于 "$lte":小于等于 "$in": 包含 (支持数字比较,不支持字符串比较)
BasicDBObject basicDBObject = new BasicDBObject();
basicDBObject.put("age", new BasicDBObject("$gt",20).append("$lt", 30));
dbCursor = menuCollection.find(basicDBObject);
while(dbCursor.hasNext()){
System.out.println(dbCursor.next());
}
System.out.println("==================");
//插入数据
List<DBObject> list = new ArrayList<DBObject>();
for(int i = 0;i < 40;i ++){
BasicDBObject dbs = new BasicDBObject();
dbs.put("name", "hj" + i);
dbs.put("age", i);
BasicDBObject info = new BasicDBObject();
info.put("x", i);
info.put("y", i + 1);
dbs.put("info", info);
list.add(dbs);
}
//创建数据集,该语句重复执行抛出异常
// db.createCollection("infoList",list.get(0));
DBCollection infoCollection = db.getCollection("infoList");
// infoCollection.insert(list);
dbCursor = infoCollection.find();
while(dbCursor.hasNext()){
System.out.println(dbCursor.next());
}
System.out.println("==================");
//正则表达式匹配查询CASE_INSENSITIVE-不区分大小写的匹配
Pattern pattern = Pattern.compile("us",Pattern.CASE_INSENSITIVE);
BasicDBObject pattDB = new BasicDBObject("name",pattern);
dbCursor = menuCollection.find(pattDB);
while(dbCursor.hasNext()){
System.out.println(dbCursor.next());
}
System.out.println("==================");
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (MongoException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
MongoDbTest.test();
}
}
分享到:
相关推荐
在本文中,我们将深入探讨如何使用Java连接MongoDB,涉及的知识点包括MongoDB Java驱动程序的安装、配置,以及基本的连接和操作数据库的方法。 首先,我们来看“java连接mongodb的jar包”。这个“mongodbjar”通常...
在Java编程环境中,MongoDB是一个广泛使用的文档型数据库,它以JSON格式存储数据,提供了高性能、高可用性和可扩展性。本教程将详细介绍如何...通过不断实践和深入学习,你将能熟练地运用Java与MongoDB进行数据交互。
MongoDB是一种流行的、高性能的NoSQL数据库,特别适合处理大量非...本资源包中的源代码实例将涵盖以上所有操作,通过实际运行这些示例,开发者可以更好地理解MongoDB的Java操作,从而在项目中更加熟练地运用MongoDB。
通过M101J课程的学习,Java开发者不仅能够掌握MongoDB的基本操作,还能了解到如何在实际开发中整合MongoDB,提升应用程序的性能和可扩展性。课程的实践部分会提供具体的示例和练习,帮助你巩固理论知识,并将所学...
MongoDB是一款开源、分布式、高性能的NoSQL数据库,...通过理解和熟练运用这个驱动,你可以充分利用MongoDB的强大功能,如文档型数据模型、灵活性、高性能和分布式特性,为你的Java应用构建高效的数据存储和处理方案。
Java作为广泛使用的开发语言,拥有丰富的MongoDB驱动程序,如MongoDB Java Driver,使得我们可以方便地操作MongoDB数据库。利用这些驱动,我们可以编写Java代码来读取BOM数据,执行转换逻辑,然后更新或插入新的视图...
MongoDB 提供了丰富的API支持创建、读取、更新和删除操作,这些操作可以通过MongoDB Shell、驱动程序或语言绑定(如Python、Java、Node.js等)来执行。 9. GridFS: 对于大文件的存储,MongoDB 提供了GridFS规范...
本文将详细介绍如何使用Java对MongoDB执行基本的CRUD(创建、读取、更新、删除)操作,并探讨一些高级查询技巧。 #### 二、环境搭建与基础配置 在开始之前,确保已经安装了MongoDB服务并正确启动。接下来,我们需要...
总的来说,李兴华老师的MongoDB培训笔记涵盖了MongoDB的基本概念、操作方法、高可用性和大数据处理策略,以及如何在Java环境中进行集成。这些内容对于初学者来说是很好的起点,对于有经验的开发者来说也是巩固和深化...
数据库、集合和文档是MongoDB中的基本概念。数据库是存储数据的地方,集合相当于关系数据库中的表,而文档则是集合中的记录,由键值对组成。 在这个“mongodbtest”压缩包里,可能包含了一个简单的MongoDB数据库...
在面试中,掌握关于MongoDB的基本概念、特性和与传统RDBMS的区别是至关重要的。 1. NoSQL数据库指的是非关系型数据库,它与RDBMS(关系型数据库管理系统)的最大差异在于数据结构。RDBMS使用表格和列的形式存储数据...
总的来说,"spring data mongodb代码参考"涵盖了从基础配置到高级功能的方方面面,帮助开发者更好地理解和运用Spring Data MongoDB,实现高效、灵活的数据操作。通过src目录下的源码和lib目录中的库文件,可以更深入...
此份“MongoDB参考手册”旨在为开发者提供全面深入的指导,涵盖从入门到精通的各个阶段,是学习与运用MongoDB不可或缺的资源。 #### 知识点概览 1. **开发周期**:介绍了MongoDB的开发流程,包括创建与删除索引、...
对于开发人员,书中还介绍了各种驱动程序的使用,如MongoDB的Python、Java和Node.js驱动,帮助开发者在不同语言环境中高效地操作MongoDB。 除此之外,书中还涉及了备份和恢复策略,包括 mongodump 和 mongorestore ...
MongoDB支持多种编程语言,提供了丰富的驱动程序库,包括但不限于Java、Node.js、Ruby等,便于不同语言背景的开发者使用MongoDB。 ### **19. MongoDB管理指南(Mongo Administration Guide)** MongoDB管理指南涵盖...
MongoDB 数据库是存储数据的基本单位,类似于关系型数据库中的数据库。集合是MongoDB中的表,但不需预定义结构,可以动态调整字段。每个集合包含多个文档,文档是JSON格式的数据对象,具有键值对结构。 2. 文档和...
在Kotlin中与MongoDB交互,我们可以使用官方提供的Java驱动程序或第三方库,如KMongo。连接MongoDB的工具类通常包含数据库连接配置(如主机地址、端口、数据库名、用户名和密码)、数据库实例的创建、集合操作方法等...
通过上述内容的学习,读者可以系统地掌握MongoDB的基本操作及高级特性,并能够在实际项目中灵活运用。此外,《MongoDB入门实战手册》还提供了丰富的实例和应用场景分析,有助于加深理解并提升解决问题的能力。
阅读《MongoDB Java API 中文.pdf》这份文档,可以深入理解这些概念并熟练运用到实际项目中。通过不断实践和学习,你将能够充分发挥MongoDB在Java应用程序中的潜力,构建高效、可扩展的数据存储解决方案。