C#操作MongoDB

临时被分配了个测试mongodb连接数的小任务,最后次用mongodb还是在上家公司时。久到连怎么连接server的语法都不记得了。翻了下文档处理好工作了简单作个笔记吧。进入正题,首先得要有个MongoDB支持的C#版的驱动。C#版的驱动有很多种,如官方提供的mongo-csharp-driver,samus。 其实实现思路大都类似的。这里我用到的是mongo-csharp-driver,当前版本为1.7.0.4714。传送门http://github.com/mongodb/mongo-csharp-driver/downloads

下载完成后得到两个dll:其中MongoDB.Driver.dll顾名思义,mongodb的驱动程序,MongoDB.Bson.dll这个是序列化和Json相关的东东。然后在我们的程序中引用这两个dll。就可以愉快的连接数据库进行伟大的增删改查操作啦,照惯例,贴段挫的代码凑篇幅!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
namespace UnitConsoleApplication
{
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading;

    using MongoDB.Driver;
    using MongoDB.Driver.Linq;
    using MongoDB.Driver.Builders;

    class Program
    {
        // 数据库连接字符串
        public static readonly string strConn = "mongodb://10.96.211.18:27017";

        // 数据库名称
        public static readonly string dbName = "testDB";

        // 表名
        public static readonly string collectionName = "testTable";

        /// <summary>
        /// Main
        /// </summary>
        /// <param name="args"></param>
        static void Main(string[] args)
        {

        }

        #region InsertData
        /// <summary>
        /// InsertData
        /// </summary>
        private void InsertData()
        {
            var server = new MongoClient(strConn).GetServer();
            var database = server.GetDatabase(dbName);
            User u = new User()
            {
                UserId = System.Guid.NewGuid().ToString(),
                UserName = "laowang"
            };

            MongoCollection col = database.GetCollection(collectionName);
            col.Insert<User>(u);
        }
        #endregion

        #region DeleteData
        /// <summary>
        /// DeleteData
        /// </summary>
        private void DeleteData()
        {
            var server = new MongoClient(strConn).GetServer();
            var database = server.GetDatabase(dbName);
            var collection = database.GetCollection(collectionName);
            collection.Remove(new QueryDocument { { "name", "laowang" } });
        }
        #endregion

        #region ModifyData
        /// <summary>
        /// ModifyData
        /// </summary>
        private void ModifyData()
        {
            var server = new MongoClient(strConn).GetServer();
            var database = server.GetDatabase(dbName);
            var collection = database.GetCollection(collectionName);
            collection.Update(new QueryDocument { { "name", "laowang" } }, new UpdateDocument { { "$set", new QueryDocument { { "name", "" } } } });
        }
        #endregion

        #region QueryData
        /// <summary>
        /// QueryData
        /// </summary>
        private void QueryData()
        {
            var server = new MongoClient(strConn).GetServer();
            var database = server.GetDatabase(dbName);
            var collection = database.GetCollection(collectionName);
            var result = collection.FindOneAs<User>(new QueryDocument { { "name", "laowang" } });
            if (null != result)
            {
                var outPut = string.Format("name:{0}", result.UserName);
                Console.WriteLine(outPut);
            }
        }
        #endregion
}

You may also like

发表评论

电子邮件地址不会被公开。 必填项已用*标注