文档章节

MongoDB

小失丶
 小失丶
发布于 2017/04/05 21:10
字数 1133
阅读 12
收藏 0
点赞 0
评论 0

什么是mongodb

是一个基于分布式文件存储的开源数据库系统, 在高负载的情况下,添加更多的节点,可以保证服务器的性能。 mongodb旨在为WEB应用提供可扩展的高性能数据存储解决方案。 它是将数据存储为一个文档,数据结构由键值(key=>value)对组成。 mongodb文档类似于json对象。字段值可以包含其他文档,数组及文档数组。


mongodb的基础使用

  1. 启动mongodb服务
./mongod --dbpath=/path/mongodb

ps: 这里为什么使用指定的数据库位置,由于使用默认数据库位置 /data/db 时, 出现了空间不足的情况,mongodb服务需要3.3G的空间。 所以在有多余空间的位置创建了数据库位置。

  1. mongodb连接
./mongod
  1. 数据库的一些操作语句
创建与切换数据库:use database;
如果存在该数据库就切换,如果不存在就创建并切换;
-
查看所有的数据库:show dbs;
刚创建的数据库如果不存放数据,就看不到;
-
查看当前数据库:db;
-
删除数据库:db.dropDatabase();
删除的是当前使用的数据库;
  1. 集合的一些操作
创建集合(插入文档):db.collectionName.insert(document);
如果不存在collectionName的集合就创建并插入document的文档,
存在就向这个集合直接插入document的数据,
其中document是BSON格式的;
-
更新文档:
db.collectionName.update(query, {$set:update},
  {
     upsert: <boolean>,
     multi: <boolean>,
     writeConcern: <document>
   });
其中query是一个BSON格式的查询条件;
update是BSON格式的需要更新的内容;
upsert : 可选,这个参数的意思是,如果不存在update的记录,
是否插入objNew,true为插入,默认是false,不插入;
multi : 可选,mongodb 默认是false,只更新找到的第一条记录,
如果这个参数为true,就把按条件查出来多条记录全部更新;
writeConcern :可选,抛出异常的级别。
-
删除文档:
db.collectionName.remove(query,
   {
     justOne: <boolean>,
     writeConcern: <document>
   });
其中query是一个BSON格式的查询条件;
justOne : (可选)如果设为 true 或 1,则只删除一个文档;
writeConcern :(可选)抛出异常的级别。
-
查询文档:db.collectionName.find(query);
其中query是一个BSON格式的查询条件,不含参数时,查找集合中的所有文档;

ps: 什么是bson? BSON是一种类json的一种二进制形式的存储格式,简称Binary JSON。

  1. MongoDB条件操作符
  • (>) 大于 - $gt------------------- greater than
  • (<) 小于 - $lt-------------------- gt equal
  • (>=) 大于等于 - $gte----------- less than
  • (<=) 小于等于 - $lte------------ lt equal
  • (!=) 不等于 - $ne--------------- not equal

mongodb在java中的应用

  1. 下载相应的jar包,配置xml
  • 下载jar包基于maven
   <!--Mongdb-->
   <dependency>
			<groupId>org.mongodb</groupId>
			<artifactId>mongo-java-driver</artifactId>
			<version>3.2.2</version>
		</dependency>
   <!--spring配置mongodb-->
		<dependency>
			<groupId>org.springframework.data</groupId>
			<artifactId>spring-data-mongodb</artifactId>
			<version>1.8.0.RELEASE</version>
		</dependency>
  • mongodb.xml配置
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
	xmlns:mongo="http://www.springframework.org/schema/data/mongo"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/beans   
                  http://www.springframework.org/schema/beans/spring-beans-3.0.xsd  
                  http://www.springframework.org/schema/context
	               http://www.springframework.org/schema/context/spring-context-3.0.xsd
                  http://www.springframework.org/schema/data/mongo  
               http://www.springframework.org/schema/data/mongo/spring-mongo.xsd">

	<!-- 加载mongodb配置信息 -->
	<!-- ignore-unresolvable="true" 有多个加载配置文件的语句,需要给每个都加上这句话 -->
 <context:property-placeholder location="classpath:mongodb.properties" ignore-unresolvable="true"/>
	<mongo:mongo id="mongo" host="${mongodb.host}" port="${mongodb.port}" />
   <mongo:db-factory dbname="database" mongo-ref="mongo" />
   <bean id="userCredentials" class="org.springframework.data.authentication.UserCredentials">
       <constructor-arg name="username" value="${mongodb.username}" />
       <constructor-arg name="password" value="${mongodb.password}" />
   </bean>
   <bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
       <constructor-arg ref="mongo" />
       <constructor-arg name="databaseName" value="${mongodb.databaseName}" />
       <constructor-arg ref="userCredentials" />
   </bean>
</beans>  

mongodb.properties

 ## 数据库地址
 mongodb.host =
## 数据库端口
mongodb.port =
## 数据库用户名
mongodb.username =
## 数据库密码
mongodb.password =
## 使用的数据库名
mongodb.databaseName =
  • 在spring配置文件中引入mongodb配置文件
<!-- 导入mongodb的配置文件 -->
   <import resource="mongodb.xml" />  
  1. 实例测试
  • 测试类主体
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:spring.xml" })
public class TestSpringMongoDB {
	private static final Logger LOG = LoggerFactory
			.getLogger(TestSpringMongoDB.class);
	@Autowired
	 private MongoTemplate monogoTemplate;
}
  • 测试查询
@Test
	public void testQuery(){
   // 获取到col集合
		DBCollection collection = monogoTemplate.getCollection("col");
		DBObject query = new BasicDBObject("title", "测试用spring插入数据");
		DBCursor cursor = collection.find(query);
		while(cursor.hasNext()){
			LOG.info(cursor.next().toString());
		}
	}
  • 测试插入
@Test
	public void testInsert() {
		// 获取到col集合
		DBCollection collection = monogoTemplate.getCollection("col");
		DBObject document = new BasicDBObject("title", "测试用spring插入数据");
		document.put("time", new Date());
		document.put("context", "没什么好说的");
		document.put("url", "www.lslkk.com");
		collection.insert(document);
	}
  • 测试更新
@Test
	public void testUpdate(){
   // 获取到col集合
		DBCollection collection = monogoTemplate.getCollection("col");
		DBObject query = new BasicDBObject("test", "测试用spring插入数据");
		DBObject document = new BasicDBObject("title", "测试更新数据");
		document.put("time", new Date());
		document.put("context", "更新成功了");
		document.put("url", "192.168.0.1");
		collection.update(query, document);
	}
  • 测试删除
@Test
	public void testDelete(){
		// 获取到col集合
		DBCollection collection = monogoTemplate.getCollection("col");
		DBObject query = new BasicDBObject("title", "测试用spring插入数据");
		collection.remove(query);
	}

© 著作权归作者所有

共有 人打赏支持
小失丶
粉丝 1
博文 13
码字总数 9297
作品 0
遂宁

暂无文章

shell中的函数、shell中的数组、告警系统需求分析

shell中的函数 格式: 格式: function f_name() { command } 函数必须要放在最前面 示例1(用来打印参数) 示例2(用于定义加法) 示例3(用于显示IP) shell中的数组 shell中的数组1 定义数...

Zhouliang6
今天
2
0
用 Scikit-Learn 和 Pandas 学习线性回归

      对于想深入了解线性回归的童鞋,这里给出一个完整的例子,详细学完这个例子,对用scikit-learn来运行线性回归,评估模型不会有什么问题了。 1. 获取数据,定义问题     没有...

wangxuwei
今天
1
0
MAC安装MAVEN

一:下载maven压缩包(Zip或tar可选),解压压缩包 二:打开终端输入:vim ~/.bash_profile(如果找不到该文件新建一个:touch ./bash_profile) 三:输入i 四:输入maven环境变量配置 MAVEN_HO...

WALK_MAN
今天
0
0
33.iptables备份与恢复 firewalld的9个zone以及操作 service的操作

10.19 iptables规则备份和恢复 10.20 firewalld的9个zone 10.21 firewalld关于zone的操作 10.22 firewalld关于service的操作 10.19 iptables规则备份和恢复: ~1. 保存和备份iptables规则 ~2...

王鑫linux
今天
2
0
大数据教程(2.11):keeperalived+nginx高可用集群搭建教程

上一章节博主为大家介绍了目前大型互联网项目的系统架构体系,相信大家应该注意到其中很重要的一块知识nginx技术,在本节博主将为大家分享nginx的相关技术以及配置过程。 一、nginx相关概念 ...

em_aaron
今天
1
0
Apache Directory Studio连接Weblogic内置LDAP

OBIEE默认使用Weblogic内置LDAP管理用户及组。 要整理已存在的用户及组,此前办法是导出安全数据,文本编辑器打开认证文件,使用正则表达式获取用户及组的信息。 后来想到直接用Apache Dire...

wffger
今天
2
0
HFS

FS,它是一种上传文件的软件。 专为个人用户所设计的 HTTP 档案系统 - Http File Server,如果您觉得架设 FTP Server 太麻烦,那么这个软件可以提供您更方便的档案传输系统,下载后无须安装,...

garkey
今天
1
0
Java IO类库之BufferedInputStream

一、BufferedInputStream介绍 /** * A <code>BufferedInputStream</code> adds * functionality to another input stream-namely, * the ability to buffer the input and to * sup......

老韭菜
今天
0
0
STM 32 窗口看门狗

http://bbs.elecfans.com/jishu_805708_1_1.html https://blog.csdn.net/a1985831055/article/details/77404131...

whoisliang
昨天
1
0
Dubbo解析(六)-服务调用

当dubbo消费方和提供方都发布和引用完成后,第四步就是消费方调用提供方。 还是以dubbo的DemoService举例 -- 提供方<dubbo:application name="demo-provider"/><dubbo:registry address="z...

青离
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部