zoukankan      html  css  js  c++  java
  • MongoDb C# 驱动操作示例

    c#操作mongo数据库

    驱动采用http://www.oschina.net/p/mongo-csharp-driver

    C#驱动的基本数据库连接,增删改查操作
    //定义对象
    public class Person 
    {
    public ObjectId _id;
    
    public string Name { get; set; }
    
    public int Age { get; set; }
    
    public override string ToString()
    {
    return string.Format("id:{0} Name:{1} Age:{2}", _id, Name, Age);
    }
    }
    

      

      
     
    增加引用:
    using MongoDB.Bson;
    using MongoDB.Driver;
    using MongoDB.Driver.Builders;
    using MongoDB.Driver.Linq;
    

      

    //连接数据库字符串
    string connectionStr = "mongodb://localhost";
    MongoClient client = new MongoClient(connectionStr);
    MongoServer server = client.GetServer();
    //选择数据库
    MongoDatabase db = server.GetDatabase("person"); 
    //选择文档集合
    MongoCollection<BsonDocument> collection = db.GetCollection("Person");
    

      

    //插入数据*******************************************************************

    //方法1:
    BsonDocument person = new BsonDocument();
    person.Add("Name", "test");
    person.Add("Age", 10); 
    collection.Insert(person);
    
     
    //方法2:
    for (int i = 0; i < 100; i++)
    {
    var perSon = new Person()
    {
    Name = "test" + i,
    Age = i
    };
    collection.Insert(perSon);
    }
    

      

    //查询数据*******************************************************************

    //小于20
    QueryDocument queryD1 = new QueryDocument("Age", new QueryDocument("$lt", 20)); //
    foreach (var perSon in collection.Find(queryD1))
    {
    Console.WriteLine(perSon);
    }
    //等于 xq20 QueryDocument queryD2 = new QueryDocument("Name", "test20"); // foreach (var perSon in collection.Find(queryD2)) { Console.WriteLine(perSon); }
    //等于 xq20 var query1 = Query.And(Query.EQ("Name","test20")); // foreach (var perSon in collection.Find(query1)) { Console.WriteLine(perSon); }

      

            

    linq方式:

    //Linq查询
    var query2 = collection.AsQueryable<Person>().Where(n => n.Name.Contains("test")).Take(20).ToList();
    //.Where(n => n.Name == "xixihaha").ToList();
    foreach (var per in query2)
    {
    Console.WriteLine(per); 
    }
    

      

      

    //保存数据*******************************************************************

    //Save1方法
    var per = collection.AsQueryable<Person>().First(n => n.Name == "xixihaha");
    //修改保存数据
    per.Age = 50;
    collection.Save(per);
    per = collection.AsQueryable<Person>().First(n => n.Name == "xixihaha");
    Console.WriteLine(per);
    
    //Save2方法
    var query = Query.And(Query.EQ("Name", "test5"));
    var document = collection.FindOne(query);
    if (document != null)
    {
    document["Age"] = 34;
    collection.Save(document);
    }
    var per = collection.AsQueryable<Person>().First(n => n.Name == "test5");
    Console.WriteLine(per);
    
    //Update方法 
    var query = Query.And(Query.EQ("Name", "test5"));
    var update = Update.Set("Age", 45);
    collection.Update(query, update);
    var per = collection.AsQueryable<Person>().First(n => n.Name == "test5");
    Console.WriteLine(per);
    

      

      

      ////删除数据******************************************************************* 

    //删除指定文档
    var query = Query.And(Query.EQ("Name", "test5"));
    

      

    //删除所有文档
    collection.RemoveAll();
    

      

    源码地址:链接:http://pan.baidu.com/s/1b2OGGY 密码:cjp4

    引用文档:http://www.cnblogs.com/wilber2013/p/4175825.html

  • 相关阅读:
    对话框中设置静态文本框字体及颜色
    UVA 10250 The Other Two Trees(几何)
    UVA 113 Power of Cryptography(数学)
    VC++设置半透明界面
    UVA 10474 Where is the Marble?
    UVA 123 Searching Quickly(分离单词)
    为对话框在标题栏和任务栏关联图标
    UVA 152 Tree's a Crowd
    UVA 156 Ananagrams
    UVA 299 Train Swapping(冒泡排序)
  • 原文地址:https://www.cnblogs.com/xqaizx/p/5778715.html
Copyright © 2011-2022 走看看