文档章节

MongoDB

小失丶
 小失丶
发布于 2017/04/05 21:10
字数 1133
阅读 15
收藏 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
遂宁
私信 提问

暂无文章

零距离接触阿里云时序时空数据库TSDB

概述 最近,Amazon新推出了完全托管的时间序列数据库Timestream,可见,各大厂商对未来时间序列数据库的重视与日俱增。 阿里云TSDB是阿里巴巴集团数据库事业部研发的一款高性能分布式时序时空...

阿里云云栖社区
16分钟前
0
0
OkHttpClient封装

import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.util.Map; import java.util.TreeMap; import java.util.Map.Entry; import o......

尘叙缘
18分钟前
1
0
零距离接触阿里云时序时空数据库TSDB

概述 最近,Amazon新推出了完全托管的时间序列数据库Timestream,可见,各大厂商对未来时间序列数据库的重视与日俱增。 阿里云TSDB是阿里巴巴集团数据库事业部研发的一款高性能分布式时序时空...

阿里云官方博客
18分钟前
0
0
centos 7 nginx_install.sh

#!/bin/bashset -eprintf "============开始安装nginx\n"printf "============输入nginx下载url,按Enter默认下载1.14.2版本\n"download_url='';while truedoread down...

偶遇一只小仙女
19分钟前
0
0
数据库高并发下乐观锁的原理

在高并发下,经常需要处理SELECT之后,在业务层处理逻辑,再执行UPDATE的情况。 若两个连接并发查询同一条数据,然后在执行一些逻辑判断或业务操作后,执行UPDATE,可能出现与预期不相符的结...

hansonwong
21分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部