• 使用CSharp Driver操作Mongodb介绍


    • 简介

    使用了一点Mongodb ,以下是自己的一点心得体会:

    不提及他的分步式,效率等特性.至少以下一些特点.让我感觉没有必要再在普通应用场景再使用关系型数据库如:SQLServer那样的数据库了.

    1.     省去了ORM:如NHibernate是一个优秀的ORM,性能也很好.但你得学习NHibernate的表达式语法.像NH那种文档健全的尚可接受.

            我还有一些更可怕的经历,写过很多用存储过程查询后手动映射成对象的代码.完全肉搏哦.
    2.     绿色的:Mongodb,如果你不想注册成服务,只要启动那个exe就行了.数据库和数据库Data文件完全拷贝就可以迁移了.
    3.     GridFS.把文件直接存在数据库里
    4.     各种编程语言驱动支持.
    官方支持的:
    C
    C# and .NET
    C++
    Erlang
    Haskell
    Java
    Javascript
    Perl 

    开源社区支持的更多:
    不列举了,很多语言没听说过.连小众的火星语言也都支持了呀.

    Mongodb 官方网站: http://www.mongodb.org/downloads
    C# 的Mongodb的Driver 版本也很多.本文只介绍mongodb官方网站上Csharp Driver.
    这个Driver 是目前C#中,使用人数最多的,支持最完善的一个,支持MapReduce,但目前最新版本尚不支持Linq 方式查询.需要构建Query 表达式来查询,不那么直观,这个有点OUT.
    具体见:http://www.mongodb.org/display/DOCS/CSharp+Language+Center


    • 推荐的两个管理工具
    1.     MongoVUE : 界面较为直观,易用.但只有商业版,可以试用
    2.     RockMongo: PHP+NGinx 免费,目前我用过几个中,最为靠谱一个了.
    3.在没有安装其他管理工具的时候,Mongodb自带了一个Shell.mongo.exe 

    • CRUD 操作示例: (示例代码摘的.比我自己写的好)

    连接数据库
     //MongoServer manages access to MongoDatabase
    MongoServer mongoServer =      MongoServer.Create("mongodb://localhost:27017");
       
    //MongoDatabase used to access MongoCollection instances
    _mongoDatabase = mongoServer.GetDatabase("CodeCamp");
    string COLLECTION="Artists";

    var artist = new Artist() { Name = "The Decembrists" };

    //直接插一个对象哦,
    _mongoDatabase.GetCollection<Artist>(COLLECTION)
         .Insert(artist);


    //更新
    artist.Name = "The Decemberists";
    _mongoDatabase.GetCollection<Artist>(COLLECTION)
         .Save(artist);
    //更新一批
    _mongoDatabase.GetCollection<Artist>(COLLECTION).Update(
        Query.EQ("Name", "The Decemberists"),
        Update.PushAll("Albums", "Castaways and Cutouts", "Picaresque", "Hazards of Love", "The Crane Wife")
    );


    更多更复杂的玩法:见
    一个详细介绍的PPT:
    • 其他:
    附件的PPT有更多的示例.里面提到了一些使用文档型数据库对象设计的准则
    •      你的对象的模型即是你的数据模型
    •      不要怕你的对象数据冗余
    •      但也不要把所有的数据塞一个文档里
    •      不要怕在文档里保存聚合统计信息
  • 相关阅读:
    HDU5873
    HDU5874
    HDU1565(状态压缩dp)
    POJ2774(二分+哈希)
    HDU4474
    HDU2602(背包)
    单链表
    POJ2503(hash)
    POJ1200(hash)
    顺序表
  • 原文地址:https://www.cnblogs.com/solo/p/2193345.html
Copyright © 2020-2023  润新知