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"] + "的记录");          
            }
        }
    }
    

     

    程序界面:

  • 相关阅读:
    支付宝H5、APP支付服务端的区别(php)
    微信小程序快速转成百度小程序的方法
    pm2命令管理启动的nodejs项目进程
    CentOS7 宝塔搭配git 实时更新项目源码
    CentOS7 搭建GIT环境
    Json数据交互
    HTML标签大全
    Java集合
    JavaSE基础知识
    idea2019版本及以下全家桶永久破解
  • 原文地址:https://www.cnblogs.com/JinvidLiang/p/2044504.html
Copyright © 2011-2022 走看看