mongoDB入门列子及原理介绍

Wesley13
• 阅读 491

本文着重介绍mongonDB的原理及安装,最后送大家一个简单的列子,有可以运行的列子和原理,相信大家很容易学会mongonDB ^_^

MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。意在为WEB应用提供可扩展的高性能数据存储解决方案。

它有一下几个特点:

  1.模式自由。 ( 像json数据一样可以自由的宽展) 

  2.支持动态查询。

  3.支持完全索引,包含内部对象。

  4.支持查询。

  5.支持复制和故障恢复。

  6.使用高效的二进制数据存储,包括大型对象(如视频等)。

  7.自动处理碎片,以支持云计算层次的扩展性。

  8.支持RUBY,PYTHON,JAVA,C++,PHP,C#等多种语言。

  9.文件存储格式为BSON(一种JSON的扩展)。

  10.可通过网络访问。(和大多数据数据库一样)

下面是个简单的增加和查找的列子,还是那句话不为别的只为读者一最快的速度了解mongonDB

package com;

import java.net.UnknownHostException;

import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.Mongo;
import com.mongodb.MongoException;

/** * @className:MogonDBDemo.java 
 * @classDescription: 
 * @author:jiangmianyue
 * @createTime:2011-12-3
 */
public class MogonDBDemo {

    /**  
     * @MethodDescription: one simple example for mogondb
     * @author:jiangmianyue
     * @createTime:2011-12-3
     */
     public static Mongo mongo=null;    // Mongo对象
     public static DB database=null;      // MongonDB的数据库对象
     public static DBCollection  collection = null;    // 类似于关系数据库的表
    // 静态语句块,当与类同事加载,可以一个防止频繁初始化
    static{
        try {
        /**
         *  初始化mogondb对象如果是本机Mongo()是个无参数的构造函数,如果是其他网络上的Mongo写成
         *  Mongo("http://233.23.11.8:端口号/数据库")的形式
        */
            mongo = new Mongo();
        } catch (UnknownHostException e) {
            e.printStackTrace();
        } catch (MongoException e) {
            e.printStackTrace();
        }
        // 获取一个叫xuehanDB的数据库,若没有此数据库就会新建一个
        database = mongo.getDB("xuehanDB");
        // 获取一个teacher集合没有新建一个
        collection = database.getCollection("people");
    }
    public static void main(String[] args) {
        Teacher t1 = new Teacher();
        t1.setId(1);
        t1.setName("teacher1");
        insertOne(t1);
        query();
    }
    // 增加一个对象
    public static void insertOne(Teacher teacher){
        BasicDBObject baseObject = new BasicDBObject();
        baseObject.put("id", teacher.getId());
        baseObject.put("name", teacher.getName());
        collection.insert(baseObject);
    }
    // 为对应Id的老师增加学生,例如给Id为1的老师增加学生
    // 查询出所有的teacher并打印出来
    public static void query(){
        DBCursor cur = collection.find();
        while (cur.hasNext()) {
            System.out.println(cur.next());
        }
    }

}
    // 新建一个teacher对象
    class Teacher{
        private int id;
        private String name;
        public int getId() {
            return id;
        }
        public void setId(int id) {
            this.id = id;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        
    }

 下载官方的mongonDB数据库解压到F:\job\db "cmd"进入dos界面,进入到mongonDB的bin目F:\job\db\mongodb-win32-i386-2.0.2-rc1\bin>敲入命令mongod.exe --dbpath F:\job\db\data(必须建立F:\job\db\data文件夹,文件夹名字可以随意不过路径不能有中文)敲回车mongod启动成功

运行java文件可以看到一下结果:

{ "_id" : { "$oid" : "4ed9cc01ffbf19d82ed3102b"} , "id" : 1 , "name" : "student1"}
{ "_id" : { "$oid" : "4ed9cc01ffbf19d82ed3102c"} , "id" : 1 , "name" : "student1"}
{ "_id" : { "$oid" : "4ed9cc19ffbf45716606bfb8"} , "id" : 1 , "name" : "teacher1"}
{ "_id" : { "$oid" : "4ed9cc92ffbf98ec2a4b8e36"} , "id" : 1 , "name" : "teacher1"}

每运行一次记录增加一条,呵呵,恭喜你你的mongodb第一个小程序运行成功

点赞
收藏
评论区
推荐文章
Irene181 Irene181
3年前
一篇文章带你搞懂非关系型数据库MongoDB
大家好,我是黄伟。今天给大家介绍芒果数据库,一起来看看吧。前言Mongodb,分布式文档存储数据库,由C语言编写,旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB是一个高性能,开源,无模式的文档型数据库,是当前NoSql数据库中比较热门的一种。它在许多场景下可用于替代传统的关系型数据库或键/值存储方式。下面我们来说说它的具体用法吧。
Irene181 Irene181
3年前
一篇文章带你搞懂非关系型数据库MongoDB
大家好,我是黄伟。今天给大家介绍芒果数据库,一起来看看吧。前言Mongodb,分布式文档存储数据库,由C语言编写,旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB是一个高性能,开源,无模式的文档型数据库,是当前NoSql数据库中比较热门的一种。它在许多场景下可用于替代传统的关系型数据库或键/值存储方式。下面我们来说说它的具体用法吧。
待兔 待兔
3个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Wesley13 Wesley13
3年前
MongoDB 教程(一):了解 NoSQL
概述:  MongoDB是一个基于分布式文件存储的数据库。由C语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。  MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。关系型数据库遵循ACID规则  事务在英文中是tran
Stella981 Stella981
3年前
MongoDB和Studio3t安装
1\.什么是MongoDBMongoDB是一个基于分布式文件存储的数据库。由C语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。2\.搭建MongoDB开发环境
Wesley13 Wesley13
3年前
MongoDB 基本使用
MongoDB是一个基于分布式文件存储的数据库。由C语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。MongoDB将数据存储为一个文档,数据结构由键值(keyvalue)对组成。MongoDB文档(
Wesley13 Wesley13
3年前
MongoDB入门简介
有关于MongoDB的资料现在较少,且大多为英文网站,以上内容大多由笔者翻译自官网,请翻译或理解错误之处请指证。之后笔者会继续关注MongoDB,并翻译“DeveloperZone”和“AdminZone”的相关内容,敬请期待下期内容。MongoDB是一个基于分布式文件存储的数据库开源项目。由C语言编写。旨在为WEB应用提供可护展的高性能数据存储
Wesley13 Wesley13
3年前
MongoDB进阶之路:不仅仅是技术研究,还有优化和最佳实践
摘要:MongoDB是一个基于分布式文件存储的数据库。由C语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。本文将从操作手册、技术研究、会议分享、场景应用等几个方面给大家推荐干货好文。MongDB操作手册快速入门旨在帮助您快速创建MongoDB实例、对实例进行基本设置以及连接实例数据库
Stella981 Stella981
3年前
Mongo db 简单介绍及命令笔记
首先来了解下什么是MongoDB?MongoDB是由C语言编写的,是一个基于分布式文件存储的开源数据库系统。在高负载的情况下,添加更多的节点,可以保证服务器性能。MongoDB旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB将数据存储为一个文档,数据结构由键值(keyva
Stella981 Stella981
3年前
Python MongoDB使用初步
MongoDB是由C语言编写的,是一个基于分布式文件存储的开源数据库系统。它是一个面向文档存储的数据库,操作起来比较简单。可通过本地或者网络创建数据镜像,具有很强的可扩展性。MongoDB支持的编程语言有Ruby,Python,Java,C,C,PHP等。本文以Windows平台为例,介绍Windows下MongoDB的安装和使用方法。