zoukankan      html  css  js  c++  java
  • MongoDB学习笔记(二) 通过samus驱动实现基本数据操作

    传统的关系数据库一般由数据库(database)、表(table)、记录(record)三个层次概念组成,MongoDB是由 (database)、集合(collection)、文档对象(document)三个层次组成。MongoDB对于关系型数据库里的表,但是集合中没 有列、行和关系概念,这体现了模式自由的特点。

    一、关于MongoDB的驱动

      MongoDB支持多种语言的驱动,在此我们只介绍C#的驱动。仅C#驱动都有很多种,每种驱动的形式大致相同,但是细节各有千秋,因此代码不 能通用。比较常用的是官方驱动和samus驱动。samus驱动除了支持一般形式的操作之外,还支持linq方式操纵数据。各人比较喜欢这种方式。

      官方驱动下载地址:点击下载
      samus驱动下载地址:点击下载

      本篇将从samus驱动入手讲解数据库访问,国际惯例,存取“Hello World!”。

    二、通过samus驱动实现HelloWorld存取

      在进行下述操作之前,请先确定MongoDB服务已经开启,不知道怎么开启服务,请看上篇。下载驱动,新建控制台项目,并添加对MongoDB.dll的引用,如果你下载的是驱动源码,编译一遍引用生成的DLL即可。

      基本代码如下:

    01 //链接字符串
    02 string connectionString = "mongodb://localhost";
    03  
    04 //数据库名
    05 string databaseName = "myDatabase";
    06  
    07 //集合名
    08 string collectionName = "myCollection";
    09  
    10 //定义Mongo服务
    11 Mongo mongo = new Mongo(connectionString);
    12  
    13 //获取databaseName对应的数据库,不存在则自动创建
    14 MongoDatabase mongoDatabase = mongo.GetDatabase(databaseName) as MongoDatabase;
    15  
    16 //获取collectionName对应的集合,不存在则自动创建
    17 MongoCollection<Document> mongoCollection = mongoDatabase.GetCollection<Document>(collectionName) as MongoCollection<Document>;
    18  
    19 //链接数据库
    20 mongo.Connect();
    21 try
    22 {
    23     //定义一个文档对象,存入两个键值对
    24     Document doc = new Document();
    25     doc["ID"] = 1;
    26     doc["Msg"] = "Hello World!";
    27  
    28     //将这个文档对象插入集合
    29     mongoCollection.Insert(doc);
    30  
    31     //在集合中查找键值对为ID=1的文档对象
    32     Document docFind = mongoCollection.FindOne(new Document { { "ID", 1 } });
    33  
    34     //输出查找到的文档对象中键“Msg”对应的值,并输出
    35     Console.WriteLine(Convert.ToString(docFind["Msg"]));
    36 }
    37 finally
    38 {
    39     //关闭链接
    40     mongo.Disconnect();
    41 }

      运行程序,成功打印helloword。同时,我们打开数据文件夹,发现多了两个文件“myDatabase.ns”和“myDatabase.0”。

    三、小结

      代码下载:https://files.cnblogs.com/lipan/MongoDB_001.rar

      本篇简洁的讲解了基本存取操作,下篇将结合MVC框架通过MongoDB实现model层单个集合的基本增删查改操作。

  • 相关阅读:
    yii2 gii 命令行自动生成控制器和模型
    控制器中的方法命名规范
    Vue Property or method "" is not defined on the instance but referenced during render. Make sure that this property is reactive, either in the data option, or for class-based
    IDEA插件:GsonFormat
    Spring Boot : Access denied for user ''@'localhost' (using password: NO)
    Typora添加主题
    Git基础命令图解
    Java Joda-Time 处理时间工具类(JDK1.7以上)
    Java日期工具类(基于JDK1.7版本)
    Oracle SQL Developer 连接Oracle出现【 状态: 失败 -测试失败: ORA-01017: invalid username/password; logon denied】
  • 原文地址:https://www.cnblogs.com/licheng/p/2241876.html
Copyright © 2011-2022 走看看