碑林区营销型网站建设,wordpress法律主题,临沂建设网站,wordpress打开文章404MongoDB是一款NoSql数据库。NoSql数据库叫非关系型数据库#xff0c;NoSql的全名Not only sql。是为了解决高并发、高可用、高可扩展#xff0c;以及大数据存储等一系列问题而产生的数据库解决方案。NoSql#xff0c;它不能替代关系型数据库#xff0c;只能作为关系型数据库… MongoDB是一款NoSql数据库。NoSql数据库叫非关系型数据库NoSql的全名Not only sql。是为了解决高并发、高可用、高可扩展以及大数据存储等一系列问题而产生的数据库解决方案。NoSql它不能替代关系型数据库只能作为关系型数据库的一个良好补充。 NoSql数据库又分为多种如键值(Key-Value)存储数据库如redis列存储数据库如HBase文档型数据库如MongoDB图形(Graph)数据库等。 MongoDB作为文档型数据库其典型应用是Web应用与Key-Value类似Value是结构化的它的数据模型是 一系列键值对。MongoDB的优势是数据结构要求不严格操作灵活劣势是查询性能不高而且缺乏统一的查询语法。 当前我们以win7系统为例64位win7安装MongoDB相对简单因为MongoDB官网在community server版本https://www.mongodb.com/download-center#community中仅推荐了一款64位的MongoDB在安装方面网上也提供了不少帖子相信大家都能顺利安装好。 相比较而言32位的win7系统在安装MongoDB时就要繁琐很多。那么对于使用32位win7系统的朋友而言应该如何安装MongoDB以及使用呢 第一步 首先在这个网址中https://www.mongodb.org/dl/win32/i386下载后缀为msi的MongoDB此处以v3.2.19版本为例。 下载了MongoDB后双击运行即可进入安装在安装过程中可以选择程序安装路径。在此我将程序安装路径改为E:\mongodb2。 MongoDB安装好后在E:\mongodb2下会生成一个bin目录bin目录是可执行文件目录启动mongo的服务器端以及客户端都在这里同时我们还要在E:\mongodb2下新建三个目录conf为配置文件存放目录data为数据存放目录log为日志存放目录。如下所示 接着在conf下创建一个名称为mongod.conf的配置文件里面内容如下 port6699
dbpathE:\mongodb2\data
logpathE:\mongodb2\log\mongod.log 配置文件里配置了MongoDB服务开启后的端口数据文件目录日志存放目录。为mongod.conf的常见基本配置参数释义本文简单演示仅配置上面三项即可 #数据库数据存放目录
dbpath../data
#数据库日志存放目录
logpath../logs/mongod.log
#以追加的方式记录日志
logappend true
#端口号 默认为27017
port6699
#以后台方式运行进程
forktrue
#开启用户认证
authtrue
#关闭http接口默认关闭http端口访问
nohttpinterfacetrue
#mongodb所绑定的ip地址
bind_ip 127.0.0.1
#启用日志文件默认启用
journaltrue
#这个选项可以过滤掉一些无用的日志信息若需要调试使用请设置为false
quiettrue 同时在log目录下创建名称为mongod.log的文件里面内容可以为空在MongoDB服务启动后这个日志文件里会记录服务运行情况。 第二步 接下来将MongoDB安装为Windows服务这步很关键。先是切换到bin目录下然后打开DOS窗口执行如下命令 E:\mongodb2\binmongod --dbpath E:\mongodb2\data --logpath E:\mongodb2\log\mongod.log --install --serviceName MongoDB --journal这时查看win7计算机管理的服务列表可以看到名称为MongoDB的Windows服务已经在里面。 第三步 我们可以Windows的服务列表窗口里开启MongoDB服务也可以在DOS窗口里启动MongoDB服务 net start MongoDB这时计算机的服务列表里显示MongoDB服务已经开启。我们还可以点击MongoDB的启动类型将其设置为手动。如下所示 其实我们在进行完“第二步”后不必再进行第三步第三步主要是为了演示Windows服务的启动此处可以忽略直接通过一个批处理文件配置MongoDB的端口如果MongoDB没有安装在本地需要在配置文件mongod.conf里加上bind_idip地址等信息然后启动MongoDB服务接着再通过一个批处理文件启动操作MongoDB的客户端即可。这就是我们下面要讲述的内容。 为了以后启动MongoDB服务以及使用MongoDB服务更方便我们还可以制作两个批处理文件。一个名称为“启动MongoDB服务端.bat”内容如下 E:
cd E:\mongodb2\bin
mongod -f E:\mongodb2\conf\mongod.conf --journal
pause另一个是启动MongoDB客户端从而操作MongoDB。这个批处理文件名称为“启动MongoDB客户端.bat”内容如下 E:
cd E:\mongodb2\bin
mongo 127.0.0.1:6699/test
pause接着双击“启动MongoDB服务端.bat文件启动成功后显示如下 这时在浏览器地址栏里输入http://localhost:6699显示如下 这说明MongoDB服务已经设置和开启成功。接下来启动MongoDB客户端操作MongoDB。 双击“启动MongoDB客户端.bat”批处理文件显示如下 说明MongoDB客户端启动成功。 到此MongoDB安装完毕客户端也启动完毕我们接下来操作MongoDB。 MongoDB有这些基本操作命令我们了解下 1查询数据库结构
#查看现有数据库show dbs
local 0.078GB
#使用某个数据库没有就创建并使用use yc
switched to db yc
#插入数据db.yc.insert({_id:1001,name:lzy,sex:男})
WriteResult({ nInserted : 1 })
#插入指定数据库下的所有数据db.yc.find()
{ _id : 1001, name : lzy, sex : 男 }
#更新数据db.yc.update({_id:1001},{name:nlz,sex:女})
WriteResult({ nMatched : 1, nUpserted : 0, nModified : 1 })db.yc.find()
{ _id : 1001, name : nlz, sex : 女 }
#删除数据db.yc.remove({_id:1001})
WriteResult({ nRemoved : 1 })db.yc.find()
#创建数据集合db.createCollection(colA,{autoIndexId:true})
{note : the autoIndexId option is deprecated and will be removed iok : 1
}db.colA.insert({_id:1001,name:张三})
WriteResult({ nInserted : 1 })for(i1;i10;i) db.colA.insert(data:i)
2018-04-29T00:53:17.8870800 E QUERY [thread1] SyntaxError: missing ) aft
#批量插入数据for(i1;i10;i) db.colA.insert({data:i})
WriteResult({ nInserted : 1 })db.colA.find()
{ _id : 1001, name : 张三 }
{ _id : ObjectId(5ae4a71301b5efddc588c80a), data : 1 }
{ _id : ObjectId(5ae4a71301b5efddc588c80b), data : 2 }
{ _id : ObjectId(5ae4a71301b5efddc588c80c), data : 3 }
{ _id : ObjectId(5ae4a71301b5efddc588c80d), data : 4 }
{ _id : ObjectId(5ae4a71301b5efddc588c80e), data : 5 }
{ _id : ObjectId(5ae4a71301b5efddc588c80f), data : 6 }
{ _id : ObjectId(5ae4a71301b5efddc588c810), data : 7 }
{ _id : ObjectId(5ae4a71301b5efddc588c811), data : 8 }
{ _id : ObjectId(5ae4a71301b5efddc588c812), data : 9 }
{ _id : ObjectId(5ae4a71301b5efddc588c813), data : 10 }#修改数据集合里某个数据的值 db.colA.update({name:张三},{name:李四})上面是MongoDB的一些基本操作指令。通过上述操作我们可以观察出一个特点那就是MongoDB存储数据是以json格式进行的如({key:value,...})。 接下来我们再看在Java程序中如何操作MongoDB。 我们以idea这款IDE工具为例创建一个工程然后在工程里添加MongoDB与单元测试的依赖这是因为我们要用单元测试展开测试如下图 接下来测试连接MongoDB服务TestConnection2.java package com.itszt;import com.mongodb.MongoClient;
import com.mongodb.client.MongoDatabase;
import org.junit.Test;/*** 测试连接MongoDB*/
public class TestConnection2 {Testpublic void testConnMongo(){//连接到MongoDB服务MongoClient mongoClientnew MongoClient(127.0.0.1,6699);//连接到MongoDB数据库MongoDatabase mongoDatabase mongoClient.getDatabase(test);System.out.println(mongoDatabase mongoDatabase);System.out.println(MongoDB connect successfully);//关闭MongoDB服务mongoClient.close();}
}控制台打印如下显示正常 mongoDatabase com.mongodb.MongoDatabaseImpl150efb8
MongoDB connect successfully接下来我们再通过java程序操作MongoDBTestCURD2.java package com.itszt;import com.mongodb.BasicDBObject;
import com.mongodb.MongoClient;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoCursor;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.model.CreateCollectionOptions;
import org.bson.Document;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;import java.util.ArrayList;
import java.util.regex.Pattern;/*** 测试MongoDB的数据操作*/
public class TestCURD2 {private MongoClient mongoClient;private MongoDatabase mongoDatabase;Beforepublic void init() {mongoClient new MongoClient(127.0.0.1, 6699);mongoDatabase mongoClient.getDatabase(test);System.out.println(MongoDB connect successfully);}Afterpublic void close() {mongoClient.close();}Testpublic void testCollection() {CreateCollectionOptions collectionOptions new CreateCollectionOptions();collectionOptions.autoIndex(true);/*capped为true表示起用封闭的集合集合容量有固定上限集合超过上限时会自动覆盖其最旧的目录如果capped为true则必须指定size参数sizeInBytes()表示集合字节大小*//*collectionOptions.capped(true);collectionOptions.sizeInBytes(1024*1024*100);*///设置集合中文档个数的上限collectionOptions.maxDocuments(1000);mongoDatabase.createCollection(colD, collectionOptions);MongoCollectionDocument colD mongoDatabase.getCollection(colD);System.out.println(colD colD);}//测试对于数据集合的添加Testpublic void testInsert() {MongoCollectionDocument colD mongoDatabase.getCollection(colD);ArrayListDocument documents new ArrayList();for (int i 1; i 10; i) {Document document new Document();document.append(userName, 张三- i);document.append(userPwd, admin_ i);documents.add(document);}//批量插入数据colD.insertMany(documents);//如果插入单条数据则是//colD.insertOne(Docoment document);}//测试查询数据集合Testpublic void testFind(){MongoCollectionDocument colD mongoDatabase.getCollection(colD);//正则条件BasicDBObject basicDBObjectReg new BasicDBObject();Pattern pattern Pattern.compile(.*[0]);basicDBObjectReg.put($regex,pattern);//条件约束BasicDBObject basicDBObject new BasicDBObject();basicDBObject.append(userName,basicDBObjectReg);FindIterableDocument documents colD.find(basicDBObject);MongoCursorDocument iterator documents.iterator();Document document null;while (iterator.hasNext()){document iterator.next();//取得整个数据System.out.println(document document);//取得若干字段值System.out.println(document.get(userName)--document.get(userPwd));}}//测试对于数据集合的修改Testpublic void testUpdate(){MongoCollectionDocument colD mongoDatabase.getCollection(colD);BasicDBObject basicDBObjectOld new BasicDBObject();basicDBObjectOld.put(userName,李四);BasicDBObject basicDBObjectNew new BasicDBObject();basicDBObjectNew.put(userName,王五);BasicDBObject update new BasicDBObject($set, basicDBObjectNew);colD.updateOne(basicDBObjectOld,update);//批量修改//colD.updateMany(basicDBObjectOld,update);}//测试对于数据集合的删除Testpublic void testDelete(){MongoCollectionDocument colD mongoDatabase.getCollection(colD);//正则条件BasicDBObject basicDBObjectReg new BasicDBObject();Pattern pattern Pattern.compile(王.*);basicDBObjectReg.put($regex,pattern);//条件约束BasicDBObject basicDBObject new BasicDBObject();basicDBObject.append(userName,basicDBObjectReg);colD.deleteOne(basicDBObject);//批量删除
// colD.deleteMany(basicDBObject);}
} 转载于:https://www.cnblogs.com/lizhangyong/p/8970066.html