MongoDB 之C#實踐

來源:互聯網
上載者:User

標籤:

官方驅動:https://github.com/mongodb/mongo-csharp-driver/downloads。下載後,還提供了一個酷似msdn的協助文檔。

samus驅動:https://github.com/samus/mongodb-csharp/downloads。 

using System;using System.Collections.Generic;using System.Linq;using MongoDB.Driver;using MongoDB.Bson;using MongoDB.Driver.Builders;namespace TestMongoDb{    class Program    {        public static string connectionString = "mongodb://localhost";        //資料庫名        private static string databaseName = "TestDb";        static void Main(string[] args)        {            // 添加一條資料            //Users us = new Users() { Age = 123, Name = "TestNameA", Sex = "F" };            //us.Insert();            // 刪除一條資料            //IMongoQuery iq = new QueryDocument("name", "TestNameA");            //Users.Remove(iq);            //修改一條資料            //IMongoQuery iq = new QueryDocument("name", "TestNameA");            //IMongoUpdate iu = MongoDB.Driver.Builders.Update.Set("sex", "M").Set("age", 100);            //Users.Update(iq, iu);            //擷取資料列表            //IMongoQuery iq = new QueryDocument("name", "TestNameA");            IMongoQuery iq = Query.And(Query.GTE("age", 40), Query.Matches("name", "/^Test/"));//>40            List<Users> userList = Users.Search(iq).ToList();            foreach (Users item in userList)            {                Console.WriteLine(item.Name + " " + item.Sex);            }        }        public class Users        {            private static string tableUser = "Users";            public Users() { }            public Users(String name, Int32 age, String sex)            {                Name = name;                Age = age;                Sex = sex;            }            public String Name { get; set; }            public Int32 Age { get; set; }            public String Sex { get; set; }            public Boolean Insert()            {                BsonDocument dom = new BsonDocument {                { "name", Name },                { "age", Age },                {"sex",Sex}            };                return MongoHelper.Insert(tableUser, dom);            }            public static IEnumerable<Users> Search(IMongoQuery query)            {                foreach (BsonDocument tmp in MongoHelper.Search(tableUser, query))                    yield return new Users(tmp["name"].AsString, tmp["age"].AsInt32, tmp["sex"].AsString);            }            public static Boolean Remove(IMongoQuery query)            {                return MongoHelper.Remove(tableUser, query);            }            public static Boolean Update(IMongoQuery query, IMongoUpdate new_doc)            {                return MongoHelper.Update(tableUser, query, new_doc);            }        }        public static class MongoHelper        {            public static MongoCursor<BsonDocument> Search(String collectionName, IMongoQuery query)            {                //定義Mongo服務                MongoServer server = MongoServer.Create(connectionString);                //擷取databaseName對應的資料庫,不存在則自動建立                MongoDatabase mongoDatabase = server.GetDatabase(databaseName);                MongoCollection<BsonDocument> collection = mongoDatabase.GetCollection<BsonDocument>(collectionName);                try                {                    if (query == null)                        return collection.FindAll();                    else                        return collection.Find(query);                }                finally                {                    server.Disconnect();                }            }            /// <summary>            /// 新增            /// </summary>             public static Boolean Insert(String collectionName, BsonDocument document)            {                MongoServer server = MongoServer.Create(connectionString);                MongoDatabase mongoDatabase = server.GetDatabase(databaseName);                MongoCollection<BsonDocument> collection = mongoDatabase.GetCollection<BsonDocument>(collectionName);                try                {                    collection.Insert(document);                    server.Disconnect();                    return true;                }                catch                {                    server.Disconnect();                    return false;                }            }            /// <summary>            /// 修改            /// </summary>              public static Boolean Update(String collectionName, IMongoQuery query, IMongoUpdate new_doc)            {                MongoServer server = MongoServer.Create(connectionString);                MongoDatabase mongoDatabase = server.GetDatabase(databaseName);                MongoCollection<BsonDocument> collection = mongoDatabase.GetCollection<BsonDocument>(collectionName);                try                {                    collection.Update(query, new_doc);                    server.Disconnect();                    return true;                }                catch                {                    server.Disconnect();                    return false;                }            }            /// <summary>            /// 移除            /// </summary>            public static Boolean Remove(String collectionName, IMongoQuery query)            {                MongoServer server = MongoServer.Create(connectionString);                MongoDatabase mongoDatabase = server.GetDatabase(databaseName);                MongoCollection<BsonDocument> collection = mongoDatabase.GetCollection<BsonDocument>(collectionName);                try                {                    collection.Remove(query);                    server.Disconnect();                    return true;                }                catch                {                    server.Disconnect();                    return false;                }            }        }    }}

 

MongoDB 之C#實踐

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.