`
lijiejava
  • 浏览: 262423 次
  • 性别: Icon_minigender_1
  • 来自: 南通
社区版块
存档分类
最新评论

MongoDB基础

 
阅读更多
一. MongoDB 基础

        MongoDB是基于文档的非关系型数据库。文档是MongoDB中的基本单元,类似于关系数据库中的行;一组文档可以作为一个集合,集合相当于关系数据库中的表;多个集合可以组成数据库。

       
        文档       ---     行
        集合       ---     表  
        数据库     ---     数据库


        1. 启动MongoDB服务:到安装目录的bin目录下,执行如下命令

        mongod --dbpath G:\NoSQL\MondoDB\data   

        G:\NoSQL\MondoDB\data是存放数据库文件的目录。MongoDB要建立一个用于存放数据库文件的目录。windows默认使用C:\data\db作为数据目录。但是在安装过程中,不会自动建立文件或者文件夹,需要自己创建。当然我们也可以在系统的任意位置创建该文件目录,然后使用命令 --dbpath 设置数据目录。


        2. 连接数据库:bin目录下执行 mongo.exe 命令启动MongoDB shell,shell默认连接test数据库,要使用别的数据库,在服务器地址后添加斜杠和数据库名就可以了  如下连接到maimeng 数据库:

        G:\NoSQL\MondoDB\bin>mongo localhost:27017/maimeng


二.MongoDB整合Spring

         1. 引入相关jar包
    
 <dependency>
		<groupId>org.mongodb</groupId>
		<artifactId>mongo-java-driver</artifactId> 
		<version>2.12.3</version>
	</dependency>
	<dependency>
		<groupId>org.springframework.data</groupId>
		<artifactId>spring-data-mongodb</artifactId>
		<version> 1.5.4.RELEASE </version> 
	</dependency> 
	<dependency>
		<groupId>org.springframework.data</groupId>
		<artifactId>spring-data-mongodb-log4j</artifactId>
		<version> 1.5.4.RELEASE </version> 
	</dependency>


          2. proprties文件
mongodb.host=127.0.0.1
mongodb.port=27017
mongodb.dbname=demo


          3. 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:context="http://www.springframework.org/schema/context"
	xmlns:mongo="http://www.springframework.org/schema/data/mongo"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
        http://www.springframework.org/schema/data/mongo     
        http://www.springframework.org/schema/data/mongo/spring-mongo-1.0.xsd 
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context-3.0.xsd"> 
	 
	<mongo:mongo host="${mongodb.host}" port="${mongodb.port}">
	   <mongo:options connections-per-host="8"
                   threads-allowed-to-block-for-connection-multiplier="4"
                   connect-timeout="500000"
                   max-wait-time="500000"
                   auto-connect-retry="true"
                   socket-keep-alive="true"
                   socket-timeout="500000"
                   slave-ok="true"
                   write-number="1"
                   write-timeout="0"
                   write-fsync="true"/>
	</mongo:mongo>

// mongo的工厂,通过它来取得mongo实例,dbname为mongodb的数据库名,没有的话会自动创建 
	<mongo:db-factory dbname="${mongodb.dbname}" mongo-ref="mongo" />

// mongodb的主要操作对象,所有对mongodb的增删改查的操作都是通过它完成  
<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
		<constructor-arg name="mongoDbFactory" ref="mongoDbFactory" />
</bean>

// 映射转换器,扫描back-package目录下的文件,把它们作为mongodb的一个collection的映射 
<mongo:mapping-converter base-package="com.newjetsoft.groupon.vo" />  -->
    
// mongodb bean的仓库目录,会自动扫描扩展了MongoRepository接口的接口进行注入  
<mongo:repositories base-package="com.test.db" repository-impl-postfix="PlusImpl"/> 

</beans>



            4. 实体类,使用MongoTemplate将实体类进行保存的时候,会根据@Document注解的值生成相应的Collection

@Document(collection = "store")
public class Store implements Serializable{
    ......
}




        配置成功之后,可以获取MongoTemplate对象对MongoDB进行增删改查操作!

三. MongoDB 的优点以及使用场景

暂无!!!

引用一段说明:

MongoDB is a popular non-relational database that uses JSON documents as the data model. It was developed for cloud environments and, as one of the original data services supported on Cloud Foundry, it's a good choice for your cloud data service needs.


================================================================================

String matchStr = "{$match:{commentedStoreId:'"+storeId+"'}}";
DBObject match = (DBObject) JSON.parse(matchStr);
        
String groupStr = "{$group:{_id: '$commentedStoreId',avgScore:{$avg:'$commentScores'}}}";
DBObject group = (DBObject) JSON.parse(groupStr);
        
String sortStr = "{$sort:{commentId:-1}}";
DBObject sort = (DBObject) JSON.parse(sortStr);
        
List<DBObject> dbObjectList = new ArrayList<DBObject>();
dbObjectList.add(match);
dbObjectList.add(group);
dbObjectList.add(sort); 
         
AggregationOutput output = mongoTemplate.getCollection("xxx").aggregate(dbObjectList); 
for( Iterator< DBObject > it = output.results().iterator(); it.hasNext(); ){
     BasicDBObject dbo = ( BasicDBObject ) it.next();
     avgScore = dbo.getDouble("avgScore");
}

分享到:
评论
3 楼 backtracker 2016-01-07  
niubility
2 楼 lijiejava 2015-07-17  

<?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:context="http://www.springframework.org/schema/context"
	xmlns:mongo="http://www.springframework.org/schema/data/mongo"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
        http://www.springframework.org/schema/data/mongo     
        http://www.springframework.org/schema/data/mongo/spring-mongo-1.0.xsd 
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context-3.0.xsd"> 
	 
	<mongo:mongo id="mongo" replica-set="${mongodb.hosts}" >
	</mongo:mongo>

	<!-- mongo的工厂,通过它来取得mongo实例,dbname为mongodb的数据库名,没有的话会自动创建 -->
	<mongo:db-factory dbname="${mongodb.dbname}" mongo-ref="mongo"/>

	<!-- mongodb的主要操作对象,所有对mongodb的增删改查的操作都是通过它完成 -->
	<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
		<constructor-arg name="mongoDbFactory" ref="mongoDbFactory" />
	</bean>

    <!-- mongodb bean的仓库目录,会自动扫描扩展了MongoRepository接口的接口进行注入--> 
    <mongo:repositories base-package="com.newjetsoft.groupon.repository.mongodb" repository-impl-postfix="PlusImpl"/> 

</beans>


1 楼 antlove 2014-10-30  
牛逼!!!!!!!!!!!!

相关推荐

    MongoDB基础(自己总结不喜勿喷)

    **一、MongoDB基础操作** 1. **安装与启动**:MongoDB的安装通常涉及下载适合操作系统(如Windows、Linux或macOS)的二进制包,然后按照官方指南配置环境变量和启动服务。启动MongoDB服务器时,可以使用`mongod`...

    MongoDB 基础.md

    MongoDB 基础

    MongoDB基础教学文档

    在“MongoDB基础教学文档”中,你可以期待学习到以下几个关键知识点: 1. **数据模型**:MongoDB的数据模型是基于BSON(Binary JSON)的,这种格式允许存储复杂的数据结构,如嵌入式文档和数组。这使得在一个文档内...

    MongoDB基础入门到高级进阶

    MongoDB是一个开源、高性能、无模式的文档型数据库,是NoSQL数据库产品中的一种。它的出现主要应对“三高”等问题,它可以解决需要存储数据量大、高并发读写、高可用的现实问题,适用于社交朋友圈、游戏积分、物流...

    mongodb基础使用教程

    ### MongoDB基础环境搭建 搭建MongoDB环境的第一步是下载最新版本的安装包。目前,MongoDB社区版的最新稳定版本是3.4.3。下载完成后,需要将安装包解压到相应的目录,例如在CentOS系统中,可以解压到/opt/mongodb...

    MongoDB 基础教程.pdf

    ### MongoDB基础教程知识点详解 #### 一、MongoDB概述 MongoDB是一款非常流行的NoSQL数据库系统,它以其灵活的数据模型和高性能的特点而受到广大开发者的青睐。尤其在处理大规模的非结构化数据方面表现突出,这...

    MongoDB基础教程.pdf

    ### MongoDB基础教程知识点详解 #### 一、MongoDB概述 MongoDB是一款开源的NoSQL(非关系型)数据库,以其灵活的数据模型、高扩展性和高性能而受到广泛欢迎。它使用BSON(Binary JSON)格式存储数据,这使得数据...

    MongoDB基础了解.docx

    ### MongoDB基础了解 #### 一、MongoDB简介与特点 MongoDB是一款开源的NoSQL数据库系统,它基于分布式文件存储,旨在为Web应用程序提供一种可扩展且高性能的数据存储方案。MongoDB融合了关系型数据库的一些特性,...

    SpringMVC+Shiro+MongoDB基础框架

    这个"SpringMVC+Shiro+MongoDB基础框架"项目提供了一个空白的起点,开发者可以在这个基础上快速搭建具备用户认证、权限控制和NoSQL数据库功能的Web应用。通过进一步的定制和扩展,可以满足各种复杂场景的需求。

    mongodb基础语句大全

    MongoDB是一种流行的开源、...以上只是MongoDB基础操作的一部分,实际使用中还有许多其他高级特性和用法,如聚合框架、索引、GridFS等。通过不断实践和学习,你可以更深入地掌握MongoDB,并在实际项目中发挥其优势。

    NoSQL数据库MongoDB基础学习

    "NoSQL数据库MongoDB基础学习" MongoDB 是一种基于分布式文件存储的数据库,由 C++ 语言编写,旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。 MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非...

    MongoDB基础入门视频教程

    教程名称:MongoDB基础入门视频教程课程目录:【】mongodb 视频 第一讲【】mongodb 视频 第二讲【】mongodb 视频 第三讲【】mongodb 视频 第四讲【】mongodb 视频 第五讲【】mongodb 视频 第六讲【】mongodb 视频 第...

    Mongodb基础知识详解(值得珍藏).pdf

    MongoDB 是一个高性能的NoSQL数据库,以分布式文件存储为基础,提供灵活的数据模型和高效的查询操作。MongoDB 不同于传统的关系型数据库,它采用面向集合的存储方式,支持无模式的数据模型,允许数据自由组织,这...

    MongoDB 基础学习资源

    MongoDB 基础学习资源,src ,手册,MongoDB NOSQL

    mongoDB基础架构简析

    mongoDB基础架构简析,详细阐述了mongo主从复制、副本集、分片环境搭建以及相关注意事项。

    MongoDB基础学习资料

    MongoDB,基础,学习,资料 MongoDB,基础,学习,资料

Global site tag (gtag.js) - Google Analytics