个人技能总结4--MongoDB在windows上安装以及java中的增删改查

本文介绍MongoDB的安装步骤及配置方法,并提供通过Java进行数据库操作的示例代码,包括连接数据库、插入和查询数据等基本操作。

1.windows下的安装创建

http://tech.it168.com/a2011/0603/1200/000001200064_2.shtml

http://blog.youkuaiyun.com/xiaoxing598/article/details/54233044

 

2.Java操作mongodb

http://www.cnblogs.com/zhwl/p/3491213.html

http://blog.youkuaiyun.com/xiaoyw71/article/details/49633831

http://blog.youkuaiyun.com/mcpang/article/details/8730849

 

 

 

一.定义,用法:

MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。

MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。

MongoDB的提供了一个面向文档存储,操作起来比较简单和容易。

你可以在MongoDB记录中设置任何属性的索引 (如:FirstName="Sameer",Address="8 Gandhi Road")来实现更快的排序。

你可以通过本地或者网络创建数据镜像,这使得MongoDB有更强的扩展性。

如果负载的增加(需要更多的存储空间和更强的处理能力) ,它可以分布在计算机网络中的其他节点上这就是所谓的分片。

Mongo支持丰富的查询表达式。查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组。

MongoDb 使用update()命令可以实现替换完成的文档(数据)或者一些指定的数据字段 。

Mongodb中的Map/reduce主要是用来对数据进行批量处理和聚合操作。

MapReduceMap函数调用emit(key,value)遍历集合中所有的记录,将keyvalue传给Reduce函数进行处理。

Map函数和Reduce函数是使用Javascript编写的,并可以通过db.runCommandmapreduce命令来执行MapReduce操作。

GridFSMongoDB中的一个内置功能,可以用于存放大量小文件。

MongoDB允许在服务端执行脚本,可以用Javascript编写某个函数,直接在服务端执行,也可以把函数的定义存储在服务端,下次直接调用即可。

MongoDB支持各种编程语言:RUBYPYTHONJAVAC++PHPC#等多种语言。

MongoDB安装简单。

 

二.安装创建:

 

先下载:http://www.mongodb.org/downloads

下载后安装,此处我的安装路径是默认路劲:C:\Program Files\MongoDB

打开bin目录:C:\Program Files\MongoDB\Server\3.4\bin

接下来我们创建一个存放数据的位置:自定义,我的是D:\mymongodb\data

然后以管理员身份运行命令行:

①运行命令:mongod --dbpath “D:\mymongodb\data”

②运行命令:mongod --dbpath “D:\mymongodb\data” --logpath “D:\mymongodb\logs.txt” --install --serviceName “MongoDB”

 

接着:cmd打开services.msc命令,查看服务

mongod --remove --serviceName "MongoDB"

说明已安装成功,右击启动该服务。

三.Java中操作MongoDB

a) 首先下载jMongoDB的Java驱动

  1. http://central.maven.org/maven2/org/mongodb/
  2. 选择同一个版本
  3. 点击http://api.mongodb.org/java/current/index.html 了解更多java驱动的API信息
  4. 下载一下三个文件

mongo-Java-driver-2.11.4.jar 
mongo-java-driver-2.11.4-javadoc.jar 
mongo-java-driver-2.11.4-sources.jar

通过maven依赖

<dependency>

    <groupId>org.mongodb</groupId>

    <artifactId>mongo-java-driver</artifactId>

    <version>2.11.4</version>

</dependency>

 

b) 使用:参考MongodbTest项目中的Testclass.java类以及ZSGC.java类。

  1. http://blog.youkuaiyun.com/mcpang/article/details/8730849

 

package com;

import java.net.UnknownHostException;
import java.util.Arrays;
import java.util.Set;

import org.junit.Test;

import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBObject;
import com.mongodb.Mongo;
import com.mongodb.MongoClient;
import com.mongodb.ServerAddress;

public class Testclass{

public static void main(String[] args) throws UnknownHostException {
//方式一:直接连接单一mongodb服务器(注意这种方式不会自动发现mongodb集群中的主服务器)
MongoClient mongoClient1 = new MongoClient();
// Mongo mongoClient1 = new Mongo();
//方式二(指定ip):
//MongoClient mongoClient2 = new MongoClient( "localhost" );
////方式二(指定ip、端口):
//MongoClient mongoClient3 = new MongoClient( "localhost" , 27017 );
////方式三:连接到mongodb服务器集群(会自动发现主服务器)
//MongoClient mongoClient4 = new MongoClient(Arrays.asList(new ServerAddress("localhost", 27017),
// new ServerAddress("localhost", 27018),
// new ServerAddress("localhost", 27019)));

DB db = mongoClient1.getDB("local");
DBCollection users = db.getCollection("users");
/**
* DBObject代表文档,这是一个接口,java中提供了多种实现,最简单的就是BasicDBObject了
*/
DBObject user = new BasicDBObject();
user.put("name", "jimmy");
user.put("age", "34");
DBObject address = new BasicDBObject();
address.put("city", "bj");
address.put("street", "bq road");
address.put("mail", "ufpark 68#");
address.put("测试","测试结果");
/**
* 对于内嵌文档,我们需要先将内嵌文档填充后,再填充到外层文档中!
*/
user.put("address", address);
// 将该文档插入到集合中
users.insert(user);
// 从集合中查询数据,我们就查询一条,调用findOne即可
DBObject dbUser = users.findOne();
System.out.println("name" + " : " + dbUser.get("name") );
System.out.println("age" + " : " + dbUser.get("age") );
DBObject dbAddress = (DBObject)user.get("address");
System.out.println("city" + " : " + dbAddress.get("city") );
System.out.println("street" + " : " + dbAddress.get("street") );
System.out.println("mail" + " : " + dbAddress.get("mail") );
//获取到MongoDB上的所有集合,无法实现。
// Set<String> colls = db.getCollectionNames();
// for (String s : colls) {
// System.out.println(s+"dsdsfdf");
// }

//获取单一集合
//调用db的getCollection(String collectionName)方法获得单一集合
// DBCollection coll = db.getCollection("collName");
// System.out.println(coll);
}

public void creatConnect() throws Exception{
//方式一:直接连接单一mongodb服务器(注意这种方式不会自动发现mongodb集群中的主服务器)
MongoClient mongoClient1 = new MongoClient();
//方式二(指定ip):
//MongoClient mongoClient2 = new MongoClient( "localhost" );
////方式二(指定ip、端口):
//MongoClient mongoClient3 = new MongoClient( "localhost" , 27017 );
////方式三:连接到mongodb服务器集群(会自动发现主服务器)
//MongoClient mongoClient4 = new MongoClient(Arrays.asList(new ServerAddress("localhost", 27017),
// new ServerAddress("localhost", 27018),
// new ServerAddress("localhost", 27019)));

DB db = mongoClient1.getDB("local");

//获取到MongoDB上的所有集合
Set<String> colls = db.getCollectionNames();
for (String s : colls) {
System.out.println(s+"dsdsfdf");
}

//获取单一集合
//调用db的getCollection(String collectionName)方法获得单一集合
// DBCollection coll = db.getCollection("testCollection");


}


}

 

 

 

package com;

import java.util.Date;

import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.Mongo;

public class ZSGC {

public static void main(String[] args) {
try {


//建立连接,无参默认是("localhost",27017)
Mongo mongo = new Mongo("127.0.0.1",27017);


/**** 获取数据库db ****/
// 如果数据库不存在,则创建一个
DB db = mongo.getDB("testMongoDb");
//数据库名称,密码。
// boolean ok = db.authenticate("root","root".toCharArray());
// if(ok){
// System.out.println("db connection success!");
//
// }{
// System.out.println("db connection fail !");
// }
/**** 获取集合相当于mysql的表,"user"为表名 ****/
// 如果集合不存在则创建一个
DBCollection table = db.getCollection("user");

/**** 增 ****/
// 创建一个文本来存储key,value
BasicDBObject document = new BasicDBObject();
document.put("name", "mkyong");
document.put("age", 30);
document.put("createdDate", new Date());
table.insert(document);

/**** 查 ****/
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.put("name", "mkyong");

DBCursor cursor = table.find(searchQuery);

while (cursor.hasNext()) {
System.out.println(cursor.next());
}

/**** 改 ****/
// 根据query查询到文本,然后修改该文本。
BasicDBObject query = new BasicDBObject();
query.put("name", "mkyong");

BasicDBObject newDocument = new BasicDBObject();
newDocument.put("name", "mkyong-updated");

BasicDBObject updateObj = new BasicDBObject();
updateObj.put("$set", newDocument);

table.update(query, updateObj);

/**** 删 ****/
//根据query查询到文本然后删除。DBCursor文本
BasicDBObject searchQuery2
= new BasicDBObject().append("name", "mkyong-updated");

DBCursor cursor2 = table.find(searchQuery2);

while (cursor2.hasNext()) {
System.out.println(cursor2.next());
table.remove(searchQuery2);
}
/**** 删除数据集 ****/
db.getCollection("user").drop();

/**** Done ****/
System.out.println("Done");

} catch (Exception e) {
e.printStackTrace();
}
}

}

内容概要:本文系统介绍了算术优化算法(AOA)的基本原理、核心思想及Python实现方法,并通过图像分割的实际案例展示了其应用价值。AOA是一种基于种群的元启发式算法,其核心思想来源于四则运算,利用乘除运算进行全局勘探,加减运算进行局部开发,通过数学优化器加速函数(MOA)和数学优化概率(MOP)动态控制搜索过程,在全局探索与局部开发之间实现平衡。文章详细解析了算法的初始化、勘探与开发阶段的更新策略,并提供了完整的Python代码实现,结合Rastrigin函数进行测试验证。进一步地,以Flask框架搭建前后端分离系统,将AOA应用于图像分割任务,展示了其在实际工程中的可行性与高效性。最后,通过收敛速度、寻优精度等指标评估算法性能,并提出自适应参数调整、模型优化和并行计算等改进策略。; 适合人群:具备一定Python编程基础和优化算法基础知识的高校学生、科研人员及工程技术人员,尤其适合从事人工智能、图像处理、智能优化等领域的从业者;; 使用场景及目标:①理解元启发式算法的设计思想与实现机制;②掌握AOA在函数优化、图像分割等实际问题中的建模与求解方法;③学习如何将优化算法集成到Web系统中实现工程化应用;④为算法性能评估与改进提供实践参考; 阅读建议:建议读者结合代码逐行调试,深入理解算法流程中MOA与MOP的作用机制,尝试在不同测试函数上运行算法以观察性能差异,并可进一步扩展图像分割模块,引入更复杂的预处理或后处理技术以提升分割效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值