zoukankan      html  css  js  c++  java
  • mongodb入门介绍

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

    它的特点是高性能、易部署、易使用,存储数据非常方便。主要功能特性有:
    *面向集合存储,易存储对象类型的数据。 
    *模式自由。
    *支持动态查询。 
    *支持完全索引,包含内部对象。 
    *支持查询。 
    *支持复制和故障恢复。 
    *使用高效的二进制数据存储,包括大型对象(如视频等)。
    *自动处理碎片,以支持云计算层次的扩展性
    *支持RUBY,PYTHON,JAVA,C++,PHP等多种语言。
    *文件存储格式为BSON(一种JSON的扩展)
    *可通过网络访问

    所谓“面向集合”(Collenction-Orented),意思是数据被分组存储在数据集中,被称为一个集合(Collenction)。每个集合在数据库中都有一个唯一的标识名,并且可以包含无限数目的文档。集合的概念类似关系型数据库(RDBMS)里的表(table),不同的是它不需要定义任何模式(schema)。
    模式自由(schema-free),意味着对于存储在mongodb数据库中的文件,我们不需要知道它的任何结构定义。如果需要的话,你完全可以把不同结构的文件存储在同一个数据库里。
    存储在集合中的文档,被存储为键-值对的形式。键用于唯一标识一个文档,为字符串类型,而值则可以是各中复杂的文件类型。我们称这种存储形式为BSON(Binary Serialized dOcument Format)。

    MongoDB服务端可运行在Linux、Windows或OS X平台,支持32位和64位应用,默认端口为27017。推荐运行在64位平台,因为MongoDB

    在32位模式运行时支持的最大文件尺寸为2GB。

    MongoDB把数据存储在文件中(默认路径为:/data/db),为提高效率使用内存映射文件进行管理。

    下面说一下配置流程:

    1:首先去官网下载程序,http://www.mongodb.org/downloads2:创建一个DB文件夹,我是放到D盘,路径: D:\Web\mongo\db3:打开CMD设置数据库的路径: D:\Web\mongo\bin\mongod.exe --dbpath=d:\Web\mongo\db4:重新打开CMD输入: D:\Web\mongo\bin\mongo.exe,如果出现下面提示,则恭喜你已经安装成功了
    D:\Web\mongo\bin>d:\Web\mongo\bin\mongo.exeMongoDB shell version: 1.4.0url: testconnecting to: testtype "exit" to exittype "help" for help>
    5:注册Windows7服务,免得以后麻烦,每回要启动。再次打开CMD:D:\Web\mongo\bin\mongod.exe --dbpath="\"D:\Web\mongo\db\"" --service

    如果上面的没有注册成功的话,可以修改注册表:找到项名称:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\MongoDB修改ImagePath的数据如下:"D:\Web\mongo\bin\mongod.exe" --dbpath="\"D:\Web\mongo\db\"" --service修改你的路径,然后把加背景颜色的全部拷进去,标点符号不要漏掉。到这里基本上就已经注册服务成功了。
     
    下面是测试数据库是否连接
    D:\mongodb\bin>mongo.exeMongoDB shell version: 1.4.0url: testconnecting to: testtype "exit" to exittype "help" for help> use testswitched to db test> db.foo.save({id:1,name:"cztom"})> db.foo.find(){ "_id" : ObjectId("4bc1854e0140000000006f05"), "id" : 1, "name" : "cztom" }

    以下是程序例子代码:需要引用MongoDB.dll和MongoDB.GridFS.dll

     

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    
    namespace mongotest
    {
        public partial class MongoDbTest : Form
        {
            public MongoDbTest()
            {
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                MongoDB.Mongo mg = new MongoDB.Mongo();
                mg.Connect();
                MongoDB.IMongoDatabase db = mg.GetDatabase("northwind");
                MongoDB.IMongoCollection categories = db.GetCollection("categories");
                MongoDB.Document category = new MongoDB.Document(); 
                category["Name"] =textBox2.Text.Trim();
                category["Price"] = textBox3.Text.Trim(); 
                categories.Insert(category);
            }
    
            private void button2_Click(object sender, EventArgs e)
            {
                listBox1.Items.Clear();
                MongoDB.Mongo mongo = new MongoDB.Mongo(); 
                mongo.Connect(); 
                MongoDB.IMongoDatabase db = mongo.GetDatabase("northwind");
                IEnumerable<MongoDB.Document> categories = db.GetCollection("categories").FindAll().Documents; 
                foreach (MongoDB.Document category in categories) 
                 {
                     listBox1.Items.Add("");
                     listBox1.Items.Add("ID=" + category["_id"]);
                     listBox1.Items.Add("Name="+category["Name"]);
                     listBox1.Items.Add("Price=" + category["Price"]);
                 }
            }
    
            private void button3_Click(object sender, EventArgs e)
            {
                listBox1.Items.Clear();
                MongoDB.Mongo mongo = new MongoDB.Mongo(); 
                mongo.Connect();
                MongoDB.IMongoDatabase db = mongo.GetDatabase("northwind");
                MongoDB.Document spec = new MongoDB.Document();
                spec["Name"] = textBox1.Text.Trim();
                MongoDB.IMongoCollection categories = db.GetCollection("categories");
                MongoDB.Document category = categories.FindOne(spec);
                if (category != null)
                {
                    string info="查找" + spec["Name"] + "Price=" + category["Price"];
                    if (radioButton1.Checked)
                    {
                        categories.Remove(category);
                        info=info+" 同时删除";
                    }
                    else if (radioButton2.Checked && textBox3.Text.Trim()!="")
                    {
                        category["Price"] = textBox3.Text.Trim();
                        categories.Save(category);
                        info = info + " 同时修改价格为 " + category["Price"];
                    }
    
                    listBox1.Items.Add(info);
                }
                else
                    listBox1.Items.Add("未找取" + spec["Name"] + "的记录");          
            }
        }
    }
    

     

    程序界面:

  • 相关阅读:
    15. DML, DDL, LOGON 触发器
    5. 跟踪标记 (Trace Flag) 834, 845 对内存页行为的影响
    4. 跟踪标记 (Trace Flag) 610 对索引组织表(IOT)最小化日志
    14. 类似正则表达式的字符处理问题
    01. SELECT显示和PRINT打印超长的字符
    3. 跟踪标记 (Trace Flag) 1204, 1222 抓取死锁信息
    2. 跟踪标记 (Trace Flag) 3604, 3605 输出DBCC命令结果
    1. 跟踪标记 (Trace Flag) 1117, 1118 文件增长及空间分配方式
    0. 跟踪标记 (Trace Flag) 简介
    SpringBoot + Redis + Shiro 实现权限管理(转)
  • 原文地址:https://www.cnblogs.com/JinvidLiang/p/2044504.html
Copyright © 2011-2022 走看看