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实例中,我们将深入探讨这个强大的NoSQL数据库系统,并与C#、MVC和asp.net进行集成。 首先,MongoDB的核心概念是集合(Collections)和文档(Documents)。集合类似于关系数据库中的表,但文档则是基于...
Java操作MongoDB实例,压缩包内为完整项目源码,使用MyEclipse软件 见文:https://blog.csdn.net/qq_33427869/article/details/87270444
总的来说,这个实例为C#开发者提供了一个全面了解如何使用MongoDB的起点,涵盖了MongoDB数据操作的基础,对于学习和实践中使用MongoDB与C#的结合非常有帮助。通过深入研究并理解这些源码,开发者可以更好地掌握...
MongoBuster是一款专门用于扫描和发现开放MongoDB实例的工具,尤其在网络安全和渗透测试领域中,它扮演着重要的角色。MongoDB作为一个流行的开源文档数据库系统,被广泛应用于各种业务场景,但如果没有得到适当的...
总结起来,"spring mvc+spring data+mongodb实例1"是一个综合性的教程,展示了如何使用Spring框架与MongoDB结合,构建一个功能完善的Web应用。这个实例涵盖了Spring MVC的控制器设计、Spring Data MongoDB的使用,...
MongoDB详解加实例 MongoDB是一款高性能、开源、无模式的文档型数据库,它属于NoSQL数据库的一种。MongoDB的设计理念是为了解决大规模数据存储问题,尤其适用于处理大量非结构化或半结构化数据。在本文中,我们将...
在这个"Mongodb实例Demo"中,我们有两个关键部分:一个名为"json"的目录,包含C++处理JSON数据的头文件,另一个是"mongo-c-driver",提供了Windows环境下MongoDB的C驱动程序。 **JSON(C++)相关知识点:** JSON...
本实例将详细介绍如何利用Node.js、MongoDB、Express框架以及异步处理(Async)来实现数据的增删改查功能。 首先,我们需要确保已安装Node.js和MongoDB。Node.js提供了npm(Node Package Manager),用于安装所需的...
在本实例中,使用Maven可以方便地管理和下载所需的库文件,如SSM框架、Redis和MongoDB的驱动等。 7. **anjiandemo**:这是一个可能的项目名,通常包含了一系列的Java源码、配置文件和资源文件,展示了如何在实际...
在Spring框架中,Spring Data MongoDB是一个强大的库,它简化了与MongoDB数据库的交互。这个库允许开发者通过使用注解和基于Java的配置来处理MongoDB的操作。以下是对标题和描述中提到的知识点的详细说明: 1. **@...
MongoDB是一种流行的开源、分布式文档型数据库,常用于构建现代应用程序,因其灵活性、高性能和易于扩展性而受到广泛欢迎。在Java开发环境中,我们可以利用Java驱动程序与MongoDB进行交互,实现数据的增删查改操作。...
本示例中的环境为四台服务器,每台服务器上将启动三个MongoDB实例。这些实例将分别扮演主节点(Primary)、从节点(Secondary)以及仲裁节点(Arbiter)的角色。具体来说: - **主节点(Primary)**:负责处理写入操作,并将...
本实例将深入探讨如何使用C#和ASP.NET进行MongoDB的基本操作,包括新增、修改、查询、分页查询、删除以及批量操作。 首先,我们要了解MongoDB .NET驱动程序。这是官方提供的SDK,允许C#开发者直接与MongoDB服务器...
NULL 博文链接:https://flycun2.iteye.com/blog/1906539
在多节点副本集中,Oplog是默认开启的,但在单台MongoDB实例中,通常不直接启用Oplog。然而,出于特定需求,如数据抽取或故障恢复,单实例开启Oplog也是可行的。 开启单台MongoDB实例的Oplog主要分为以下几个步骤:...
mongodb mongod.exe:数据库进程本身,是核心数据库服务器 mongo.exe:命令行Shell客户端,用于确保所有内容都已正常安装且能正常运行 可以对数据进行 CRUD操作、执行管理任务等
mongodb-自动化mongodb-automation 是一个 docker 镜像,允许您使用部署 MongoDB 实例。 该映像提供了一个预安装和配置的 MMS 自动化代理。 。例子运行单个容器启动一个 mongodb-automation 容器,我们将在其中部署...
所有日志条目将直接保存到您的mongodb实例。 这是一个非常低级的实现,并且没有外部依赖性。 该实现需要一个mongoose模型,用于将日志数据保存在mongodb实例中。安装npm install bunyan-mongodb-stream或者npm ...
在上述代码中,我们使用`new Mongo("127.0.0.1", 27017)`来连接本地主机的27017端口上的MongoDB实例。如果MongoDB服务器需要身份验证,使用`getDB()`方法并传入数据库名及认证信息。 2. **认证** 如果数据库启用了...