`
yhz61010
  • 浏览: 562560 次
  • 来自: -
博客专栏
63c13ecc-ef01-31cf-984e-de461c7dfde8
libgdx 游戏开发
浏览量:12274
社区版块
存档分类
最新评论

MongoDB 使用简介

阅读更多
去官方网站下载了程序,“绿色”的,通过命令行直接运行BIN下面的服务器mongod.exe即可,不过默认的数据库位置在C盘下,这总是不大合适,可以通过加参数 -dbpath来改变,如
mongod.exe –dbpath d:/db
注意这里有个问题,Windows下,一般是使用\作为路径分隔符的,不过在这里,如果直接使用d:\db这样的话,mongod会把\去掉,变成d:db这样,导致启动失败,所以比较简单的方法就是用/来代替\
服务器启动后,可以在浏览器中访问,默认地址是:http://127.0.0.1:28017/,里面会有一些数据库的基本信息
访问数据库可以使用BIN下面的mongo.exe,是个命令行工具。对于用惯了MS-SQL,MySQL这样有良好的数据库UI工具的我来说,让我直接用命令行去操作数据库实在是有些不习惯,在网上查了一下,UI工具有倒是有,不过都不大完善的样子,也就懒得下了。在命令行下,输入help可以看到基本操作命令:
show dbs:显示数据库列表
show collections:显示当前数据库中的集合(类似关系数据库中的表)
show users:显示用户
use <db name>:切换当前数据库,这和MS-SQL里面的意思一样
db.help():显示数据库操作命令,里面有很多的命令
db.foo.help():显示集合操作命令,同样有很多的命令,foo指的是当前数据库下,一个叫foo的集合,并非真正意义上的命令
db.foo.find():对于当前数据库中的foo集合进行数据查找(由于没有条件,会列出所有数据)
db.foo.find( { a : 1 } ):对于当前数据库中的foo集合进行查找,条件是数据中有一个属性叫a,且a的值为1
------------------------------------------------
大致的说明一下MongoDB中的数据格式,我没有去详细的查看官方的文档,只是按我试用过的感觉来说,其数据结构,类似JSON,即key-value成对,key一般就是String,而value而无所谓了,如一个JSON数据:
{
     name:"X-Man",
     birthday:{
        year:1987,
        month:1,
        day:20 
     }
}
只要你愿意,就可以把Value不断的复杂化,以方便存储数据
-----------------------------------------------------------
要使用Java操作MongoDB的话,要到官方网站下载一个驱动包,点击网站上的Drivers里面,可以看到目前支持的语言,非常的多……把包导入后,可以尝试来操作了(记得一定要开着服务器)
首先介绍一下比较常用的几个类
Mongo:连接服务器,执行一些数据库操作的选项,如新建立一个数据库等
DB:对应一个数据库,可以用来建立集合等操作
DBCollection:对应一个集合(类似表),可能是我们用得最多的,可以添加删除记录等
DBObject接口和BasicDBObject对象:表示一个具体的记录,BasicDBObject实现了DBObject,因为是key-value的数据结构,所以用起来其实和HashMap是基本一致的
DBCursor:用来遍历取得的数据,实现了Iterable和Iterator
接下来实际的操作一下,代码如下:

import com.mongodb.*;

public class Main {

    public static void main(String[] args) {

        try{
            Mongo m = new Mongo("127.0.0.1");

            //选择数据库,如果没有这个数据库的话,会自动建立

            DB db = m.getDB("mongo");

            //列出所有数据库名,不过发现,如果数据库里面是没有数据的话,并不会被列出来

            System.out.println("数据库列表:"+m.getDatabaseNames());



            //建立一个集合,和数据库一样,如果没有,会自动建立

            DBCollection col = db.getCollection("col");

            //列出所有集合名,和数据库一样,如果集合里面是没有数据的话,并不会被列出来

            System.out.println("当前数据库下的集合列表:"+db.getCollectionNames());



            //建立一个数据项,重复执行会多次添加一样的数据

            BasicDBObject val = new BasicDBObject();

            val.put("name", "X-Man");

            col.save(val);

            //保存的数据为

            //{ "_id" : "4b8de2f3053068a371e870c0" , "name" : "X-Man"}

            //_id是系统自动帮加上的,全局唯一

            //多次加入一样的数据时,_id都是不一样的



            //取得所有数据并打印出来

            DBCursor ite = col.find();

            while(ite.hasNext())

            {

                System.out.println(ite.next());

            }

        }catch(Exception error)

        {

            error.printStackTrace();

        }

    }

}

----------------------------更新操作--------------------------
view sourceprint?

import com.mongodb.*;



public class Main {

    public static void main(String[] args) {

        try{

            Mongo m = new Mongo("127.0.0.1");

            DB db = m.getDB("mongo");

            DBCollection col = db.getCollection("col");



            System.out.println("修改前:");

            showData(col);



            //查找所有 name=X-Man 的项,并更新

            BasicDBObject old_val = new BasicDBObject(),new_val = new BasicDBObject();

            old_val.put("name", "X-Man无敌");

            new_val.put("name", "X-Man无敌");

            col.update(old_val, new_val);//只会更新一个

            //col.updateMulti(new_val, old_val)不知道怎么回事,这函数不顶用



            System.out.println("修改后:");

            showData(col);

        }catch(Exception error)

        {

            error.printStackTrace();

        }

    }



    static void showData(DBCollection col)

    {

        DBCursor ite = col.find();

        while(ite.hasNext())

        {

            System.out.println(ite.next());

        }

    }

}
分享到:
评论
1 楼 robinson00544 2011-02-15  
那个函数不是不顶用,而是用错了
文档上:
{ $set : { x : 1 , y : 2 } }
是更新多个值的用法,
所以,这里应该再new一个BasicDBObject,键设为$set,值是new_val,这样就可以了

相关推荐

    mongoDB简介.doc

    ### MongoDB简介 MongoDB是一种介于关系数据库和非关系数据库之间的产品,在非关系数据库中以其丰富的功能和接近关系数据库的特性而闻名。它支持类似JSON的BSON格式数据存储,适用于存储复杂的数据类型。 #### ...

    mongodb的安装和使用简介

    MongoDB是一种开源的非关系型数据库系统,其特点在于分布式文件存储、高性能、易部署、易使用和存储格式灵活。MongoDB采用C++编写,支持存储各种复杂的数据类型,尤其擅长处理大量的数据。它的数据模型与传统的关系...

    MongoDB简介与实践.pdf

    MongoDB使用的是集合(Collection)作为存储数据的容器,每个集合可以包含多个JSON格式的文档(Document)。它支持嵌套文档(Embedded Document)和分片(Shard),使用分片键(ShardKey)来分布数据。 9. MongoDB...

    windows下mongodb安装与使用整理

    #### 一、MongoDB 简介 MongoDB 是一种基于分布式文件存储的开源数据库系统。它属于 NoSQL 数据库的一种,使用 BSON(Binary JSON)格式来存储数据,支持动态模式,使得开发过程更加简单快捷。 #### 二、Windows 下...

    MongoDB简介(软件测试)

    MongoDB简介 软件测试

    MongoDB开发使用手册

    **1.1 MongoDB简介** - **NoSQL背景:** - 随着互联网用户的快速增长和用户行为的变化,传统的关系型数据库在处理高并发读写操作、海量数据存储以及提供高可用性和高扩展性方面遇到了挑战。 - NoSQL(Not Only ...

    MongoDB简介及精进PDF

    在这个"MongoDB简介及精进PDF"的压缩包中,包含了对MongoDB的深度探讨,包括其基本概念、核心特性、最佳实践以及高级技术应用。 NOSQL主流产品的研究报告.docx可能涵盖了当前市场上流行的NoSQL数据库的比较,包括...

    MongoDB 使用手册-中文版.docx

    #### 一、MongoDB简介 **功能特点** - **面向文档存储**:MongoDB采用类似于JSON的数据模型,这种结构简单且强大,非常适合存储复杂的数据类型。 - **高效的存储方式**:支持二进制数据及大型对象(如照片和视频)...

    Mongodb shard 简介

    "Mongodb shard 简介" MongoDB shard 是一种水平方向的多节点数据分散存储技术,它可以将大量数据分布到多个服务器上,以提高数据库的存储能力和查询效率。下面是 MongoDB shard 的一些特性和部署架构: Shard 的...

    mongodb 使用手册

    ### 第 1 章 MongoDB 简介 #### 1.1 功能特点 1. **文档存储**:MongoDB以JSON格式的文档存储数据,使得数据结构与应用程序更加贴近。 2. **弹性伸缩**:支持水平扩展,通过分片集群实现大数据量存储。 3. **高性能...

    MongoDB企业级分片集群搭建视频.zip

    1 MongoDB的简介和安装启动.mp4 2 MongoDB服务器的启动优化.mp4 3 MongoDB客户端基础使用.mp4 4 MongoDB集合的多种查询条件.mp4 5 MongoDB索引查询与建立.mp4 6 MongoDB数据库的监控命令.mp4 7 MongoDB副本集的搭建....

    MongoDB应用设计模式

    资源名称:MongoDB应用设计模式内容简介:无论是在构建社交媒体网站,还是在开发一个仅在内部使用的企业应用程序,《MongoDB应用设计模式》展示了MongoDB需要解决的商业问题之间的连接。你将学到如何把MongoDB设计...

    MongoDB简介与实践

    ### MongoDB简介与实践 #### MongoDB概述 MongoDB是一款先进的、基于分布式文件存储的数据库系统,其核心编程语言为C++。这款数据库系统的设计初衷是为了满足Web应用对高性能、可扩展数据存储方案的需求。MongoDB...

    mvc使用mongodb

    **一、MongoDB简介** MongoDB是一个基于分布式文件存储的开源数据库系统,它以JSON(JavaScript Object Notation)格式存储数据,具有高度可扩展性和高性能。MongoDB支持丰富的查询语句,可以方便地进行数据检索和...

    mongodb使用大全

    MongoDB简介: MongoDB是一个高性能的NoSQL数据库,使用C++编写,支持分布式的文件存储。它提供了一个可扩展的平台,可以通过增加节点数量来应对高负载情况,保证服务器性能。 MongoDB的特点: MongoDB的主要特点...

    Spring-Data-MongoDB3.2

    Spring Data MongoDB简介** Spring Data MongoDB提供了与MongoDB数据库交互的一系列抽象,包括MongoTemplate和Repository接口。通过这些接口,开发人员无需直接编写MongoDB的Java驱动程序代码,就能实现CRUD(创建...

    mongodb启动加入windows服务

    #### 一、MongoDB简介 MongoDB是一种非常流行的开源文档数据库系统,它属于NoSQL(非关系型数据库)的一种。与传统的关系型数据库不同,MongoDB采用BSON(Binary JSON)格式存储数据,这使得数据存储更加灵活,并且...

    Mongodb for Ubuntu 18.04 ARM 64

    二、MongoDB简介 MongoDB是一个NoSQL数据库,它使用JSON-like文档进行数据存储,这使得处理复杂数据结构变得简单。它的特点是灵活性、高可用性、可扩展性和高性能,适用于大数据和实时应用。 三、安装MongoDB 1. ...

Global site tag (gtag.js) - Google Analytics