`
jaesonchen
  • 浏览: 313486 次
  • 来自: ...
社区版块
存档分类
最新评论

mongodb 实例

 
阅读更多
package com.jaeson.mongodb;

import java.util.ArrayList;
import java.util.List;

import org.bson.Document;

import com.mongodb.Block;
import com.mongodb.MongoClient;
import com.mongodb.MongoCredential;
import com.mongodb.ServerAddress;
//import com.mongodb.MongoClientURI;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCursor;
import com.mongodb.client.model.Filters;
import com.mongodb.client.model.Sorts;
import com.mongodb.client.model.Projections;

public class MongodbTest {

	@SuppressWarnings("unused")
	public static void connectServer() {
		try {
			// 连接到 mongodb 服务
			MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
			//MongoClientURI connectionString = new MongoClientURI("mongodb://localhost:27017");
			//MongoClient mongoClient = new MongoClient(connectionString);
			//MongoClient mongoClient = new MongoClient(
			//	Arrays.asList(new ServerAddress("localhost", 27017),
		    	//		new ServerAddress("localhost", 27018)));
			
			//Get A List of Databases
			for (String name: mongoClient.listDatabaseNames()) {
			    System.out.println(name);
			}
			
			//drop database
			//mongoClient.getDatabase("databaseToBeDropped").drop();
			
			// 连接到数据库
			MongoDatabase mongoDatabase = mongoClient.getDatabase("mydb");  
			System.out.println("Connect to database successfully");
			
			mongoClient.close();
		} catch(Exception e) {
			System.err.println( e.getClass().getName() + ": " + e.getMessage() );
		}
	}
	@SuppressWarnings("unused")
	public static void connectServer(String username, String password) {
        try {  
            //连接到MongoDB服务,如果是远程连接可以替换“localhost”为服务器所在IP地址  
            //ServerAddress()两个参数分别为 服务器地址 和 端口  
            ServerAddress serverAddress = new ServerAddress("localhost", 27017);
            List<ServerAddress> addrs = new ArrayList<ServerAddress>();
            addrs.add(serverAddress);
              
            //MongoCredential.createScramSha1Credential()三个参数分别为 用户名 数据库名称 密码  
            MongoCredential credential = MongoCredential.createScramSha1Credential(username, "databaseName", password.toCharArray());
            List<MongoCredential> credentials = new ArrayList<MongoCredential>();
            credentials.add(credential);
              
            //通过连接认证获取MongoDB连接  
            MongoClient mongoClient = new MongoClient(addrs, credentials);
              
            //连接到数据库  
            MongoDatabase mongoDatabase = mongoClient.getDatabase("databaseName");
            System.out.println("Connect to database successfully");
            
            mongoClient.close();
        } catch (Exception e) {
            System.err.println( e.getClass().getName() + ": " + e.getMessage() );
        }
    }  

	public static void createCollection() {
		try{   
			// 连接到 mongodb 服务
			MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
 
			// 连接到数据库
			MongoDatabase mongoDatabase = mongoClient.getDatabase("mydb");  
			System.out.println("Connect to database successfully");
			mongoDatabase.createCollection("mycol");
			System.out.println("集合创建成功");
 
			//Get A List of Collections
			for (String name : mongoDatabase.listCollectionNames()) {
			    System.out.println(name);
			}
			
			MongoCollection<Document> collection = mongoDatabase.getCollection("mycol");
			System.out.println("集合 mycol 选择成功");
			
			// create an ascending index on the "i" field, 1 = ascending, -1 = descending
			collection.createIndex(new Document("i", 1));
			
			//Get a List of Indexes on a Collection
			for (final Document index : collection.listIndexes()) {
			    System.out.println(index.toJson());
			}
			
			//drop collection
			//collection.dropCollection();
			
			mongoClient.close();
		} catch(Exception e) {
			System.err.println( e.getClass().getName() + ": " + e.getMessage() );
		}
	}
	
	public static void insert() {
		try{   
			// 连接到 mongodb 服务
			MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
	          
			// 连接到数据库
			MongoDatabase mongoDatabase = mongoClient.getDatabase("mydb");  
			System.out.println("Connect to database successfully");

			MongoCollection<Document> collection = mongoDatabase.getCollection("mycol");
			System.out.println("集合 mycol 选择成功");
			//插入文档  
			/** 
			 * 1. 创建文档 org.bson.Document 参数为key-value的格式 
			 * 2. 创建文档集合List<Document> 
			 * 3. 将文档集合插入数据库集合中 mongoCollection.insertMany(List<Document>) 插入单个文档可以用 mongoCollection.insertOne(Document) 
			 */
			Document document = new Document("title", "MongoDB").
				append("description", "database").
				append("likes", 100).
				append("by", "Fly");
			List<Document> documents = new ArrayList<Document>();
			documents.add(document);
			collection.insertMany(documents);
			//collection.insertOne(document);
			System.out.println("文档插入成功");
			
			mongoClient.close();
		} catch(Exception e) {
			System.err.println( e.getClass().getName() + ": " + e.getMessage() );
		}
	}
	
	public static void find() {
		try{   
			// 连接到 mongodb 服务
			MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
	          
			// 连接到数据库
			MongoDatabase mongoDatabase = mongoClient.getDatabase("mydb");  
			System.out.println("Connect to database successfully");
	          
			MongoCollection<Document> collection = mongoDatabase.getCollection("mycol");
			System.out.println("集合 mycol 选择成功,count=" + collection.count());
	          
			//检索所有文档  
			/** 
			 * 1. 获取迭代器FindIterable<Document> 
			 * 2. 获取游标MongoCursor<Document> 
			 * 3. 通过游标遍历检索出的文档集合 
			 */  
			FindIterable<Document> findIterable = collection.find();
			MongoCursor<Document> mongoCursor = findIterable.iterator();
			while (mongoCursor.hasNext()) {
				System.out.println(mongoCursor.next());
			}
			
			List<Document> foundDocument = collection.find().into(new ArrayList<Document>());
			for (Document document : foundDocument) {
				System.out.println(document.toJson());
			}
			
			//find first
			Document myDoc = collection.find(Filters.eq("likes", 100)).first();
			System.out.println(myDoc.toJson());
			
			//find 50 < likes <= 200
			Block<Document> printBlock = new Block<Document>() {
			     @Override
			     public void apply(final Document document) {
			         System.out.println(document.toJson());
			     }
			};
			collection.find(Filters.and(Filters.gt("likes", 50), Filters.lte("likes", 200))).forEach(printBlock);
			
			//sort by likes desc
			myDoc = collection.find(Filters.exists("likes")).sort(Sorts.descending("likes")).first();
			System.out.println(myDoc.toJson());
			
			//exclude the _id field 
			myDoc = collection.find().projection(Projections.excludeId()).first();
			System.out.println(myDoc.toJson());

			mongoClient.close();
		} catch(Exception e) {
			System.err.println( e.getClass().getName() + ": " + e.getMessage() );
		}
	}
	
	public static void update() {
		try{   
			// 连接到 mongodb 服务
			MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
	          
			// 连接到数据库
			MongoDatabase mongoDatabase = mongoClient.getDatabase("mydb");  
			System.out.println("Connect to database successfully");
	          
			MongoCollection<Document> collection = mongoDatabase.getCollection("mycol");
			System.out.println("集合 mycol 选择成功");
	          
			//更新文档   将文档中likes=100的文档修改为likes=200
			//collection.updateOne(Filters.eq("likes", 100), new Document("$set",new Document("likes",200)));
			collection.updateMany(Filters.eq("likes", 100), new Document("$set",new Document("likes",200)));
			
			//更新文档   将文档中likes=100的文档的likes 增加50
			collection.updateMany(Filters.eq("likes", 100), new Document("$inc", new Document("likes", 50)));
			
			//检索查看结果  
			FindIterable<Document> findIterable = collection.find();
			MongoCursor<Document> mongoCursor = findIterable.iterator();
			while (mongoCursor.hasNext()) {
				System.out.println(mongoCursor.next());
			}
			
			mongoClient.close();
		} catch(Exception e) {
			System.err.println( e.getClass().getName() + ": " + e.getMessage() );
		}
	}
	
	public static void delete() {
		try{   
			// 连接到 mongodb 服务
			MongoClient mongoClient = new MongoClient( "localhost" , 27017 );

			// 连接到数据库
			MongoDatabase mongoDatabase = mongoClient.getDatabase("mydb");  
			System.out.println("Connect to database successfully");

			MongoCollection<Document> collection = mongoDatabase.getCollection("mycol");
			System.out.println("集合 mycol 选择成功");

			//删除符合条件的第一个文档  
			//collection.deleteOne(Filters.eq("likes", 200));
			//删除所有符合条件的文档  
			collection.deleteMany (Filters.eq("likes", 200));
			//检索查看结果  
			FindIterable<Document> findIterable = collection.find();
			MongoCursor<Document> mongoCursor = findIterable.iterator();
			while (mongoCursor.hasNext()) {
				System.out.println(mongoCursor.next());
			}
			
			mongoClient.close();
		} catch(Exception e) {
			System.err.println( e.getClass().getName() + ": " + e.getMessage() );
		}
	}
	
	public static void main(String[] args) {
	}
}

 

 

分享到:
评论

相关推荐

    MongoDB实例

    在本MongoDB实例中,我们将深入探讨这个强大的NoSQL数据库系统,并与C#、MVC和asp.net进行集成。 首先,MongoDB的核心概念是集合(Collections)和文档(Documents)。集合类似于关系数据库中的表,但文档则是基于...

    Java操作MongoDB实例

    Java操作MongoDB实例,压缩包内为完整项目源码,使用MyEclipse软件 见文:https://blog.csdn.net/qq_33427869/article/details/87270444

    c#操作mongodb实例(含完整源码)

    总的来说,这个实例为C#开发者提供了一个全面了解如何使用MongoDB的起点,涵盖了MongoDB数据操作的基础,对于学习和实践中使用MongoDB与C#的结合非常有帮助。通过深入研究并理解这些源码,开发者可以更好地掌握...

    mongoBuster - 扫描开放的MongoDB实例.zip

    MongoBuster是一款专门用于扫描和发现开放MongoDB实例的工具,尤其在网络安全和渗透测试领域中,它扮演着重要的角色。MongoDB作为一个流行的开源文档数据库系统,被广泛应用于各种业务场景,但如果没有得到适当的...

    spring mvc+spring data+mongodb实例1

    总结起来,"spring mvc+spring data+mongodb实例1"是一个综合性的教程,展示了如何使用Spring框架与MongoDB结合,构建一个功能完善的Web应用。这个实例涵盖了Spring MVC的控制器设计、Spring Data MongoDB的使用,...

    MongoDB详解加实例

    MongoDB详解加实例 MongoDB是一款高性能、开源、无模式的文档型数据库,它属于NoSQL数据库的一种。MongoDB的设计理念是为了解决大规模数据存储问题,尤其适用于处理大量非结构化或半结构化数据。在本文中,我们将...

    Mongodb实例Demo

    在这个"Mongodb实例Demo"中,我们有两个关键部分:一个名为"json"的目录,包含C++处理JSON数据的头文件,另一个是"mongo-c-driver",提供了Windows环境下MongoDB的C驱动程序。 **JSON(C++)相关知识点:** JSON...

    NodeJs+MongoDB实例

    本实例将详细介绍如何利用Node.js、MongoDB、Express框架以及异步处理(Async)来实现数据的增删改查功能。 首先,我们需要确保已安装Node.js和MongoDB。Node.js提供了npm(Node Package Manager),用于安装所需的...

    ssm框架整合redis+mongodb实例

    在本实例中,使用Maven可以方便地管理和下载所需的库文件,如SSM框架、Redis和MongoDB的驱动等。 7. **anjiandemo**:这是一个可能的项目名,通常包含了一系列的Java源码、配置文件和资源文件,展示了如何在实际...

    spring mongodb 用法总结和实例

    在Spring框架中,Spring Data MongoDB是一个强大的库,它简化了与MongoDB数据库的交互。这个库允许开发者通过使用注解和基于Java的配置来处理MongoDB的操作。以下是对标题和描述中提到的知识点的详细说明: 1. **@...

    基于java的mongodb实例,代码demo

    MongoDB是一种流行的开源、分布式文档型数据库,常用于构建现代应用程序,因其灵活性、高性能和易于扩展性而受到广泛欢迎。在Java开发环境中,我们可以利用Java驱动程序与MongoDB进行交互,实现数据的增删查改操作。...

    mongodb多实例副本集群详细搭建

    本示例中的环境为四台服务器,每台服务器上将启动三个MongoDB实例。这些实例将分别扮演主节点(Primary)、从节点(Secondary)以及仲裁节点(Arbiter)的角色。具体来说: - **主节点(Primary)**:负责处理写入操作,并将...

    C#,asp.net操作mongodb实例,新增,修改,查询,分页查询,删除,基类封装,打开直接运行

    本实例将深入探讨如何使用C#和ASP.NET进行MongoDB的基本操作,包括新增、修改、查询、分页查询、删除以及批量操作。 首先,我们要了解MongoDB .NET驱动程序。这是官方提供的SDK,允许C#开发者直接与MongoDB服务器...

    Java MongoDB 实例HelloWorld

    NULL 博文链接:https://flycun2.iteye.com/blog/1906539

    关于单台MongoDB实例开启Oplog的过程详解

    在多节点副本集中,Oplog是默认开启的,但在单台MongoDB实例中,通常不直接启用Oplog。然而,出于特定需求,如数据抽取或故障恢复,单实例开启Oplog也是可行的。 开启单台MongoDB实例的Oplog主要分为以下几个步骤:...

    mongodb实例,实现ASP.NET MVC增删改查 64位 2.4.3

    mongodb mongod.exe:数据库进程本身,是核心数据库服务器 mongo.exe:命令行Shell客户端,用于确保所有内容都已正常安装且能正常运行 可以对数据进行 CRUD操作、执行管理任务等

    mongodb-automation:允许您使用 MMS 自动化部署 MongoDB 实例的 docker 映像

    mongodb-自动化mongodb-automation 是一个 docker 镜像,允许您使用部署 MongoDB 实例。 该映像提供了一个预安装和配置的 MMS 自动化代理。 。例子运行单个容器启动一个 mongodb-automation 容器,我们将在其中部署...

    bunyan-mongodb-stream:Mongoose的数据库流,用于将所有日志保存到mongodb实例中

    所有日志条目将直接保存到您的mongodb实例。 这是一个非常低级的实现,并且没有外部依赖性。 该实现需要一个mongoose模型,用于将日志数据保存在mongodb实例中。安装npm install bunyan-mongodb-stream或者npm ...

    MongoDB系列教程(六):java操作mongodb实例

    在上述代码中,我们使用`new Mongo("127.0.0.1", 27017)`来连接本地主机的27017端口上的MongoDB实例。如果MongoDB服务器需要身份验证,使用`getDB()`方法并传入数据库名及认证信息。 2. **认证** 如果数据库启用了...

Global site tag (gtag.js) - Google Analytics