设为首页 加入收藏

TOP

8天学通MongoDB――第八天 驱动实践(二)
2014-11-23 20:25:48 来源: 作者: 【 】 浏览:33
Tags:MongoDB 第八 驱动 实践
tCollection(collectionName); var single = collection.Linq().FirstOrDefault(func); mongo.Disconnect(); return single; } catch (Exception) { mongo.Disconnect(); throw; } } } #endregion #region 删除操作 /// /// 删除操作 /// /// /// public void Delete(Expression> func) { using (Mongo mongo = new Mongo(configuration)) { try { mongo.Connect(); var db = mongo.GetDatabase(databaseName); var collection = db.GetCollection(collectionName); //这个地方要注意,一定要加上T参数,否则会当作object类型处理 //导致删除失败 collection.Remove(func); mongo.Disconnect(); } catch (Exception) { mongo.Disconnect(); throw; } } } #endregion

5. 好,我们开一下2222端口,由于前前篇我已经把这个mongodb做成了服务,现在就直接连过去了,并做一下对Name的索引。

\

6. 一切准备妥当,我们做下基本的操作,比如这里我添加一千条数据,注意我开启的是安全模式,如果插入不成功,将会抛出异常。

<1> Add:


static void Main(string[] args)
        {
            MongodbHelper helper = new MongodbHelper();

            //插入1000条数据
            for (int i = 0; i < 1000; i++)
            {
                helper.Insert(new Person()
                {
                    ID = Guid.NewGuid().ToString(),
                    Name = "jack" + i,
                    Age = i,
                    CreateTime = DateTime.Now
                });
            }

            Console.WriteLine("插入成功");

            Console.Read();
        }

\

乍一看显示的数据以为有问题,为什么没有出现jack0或者jack999,不过find的一下后心情舒坦了。

<2> update: 这里就把jack941的名字改掉“mary”



static void Main(string[] args)
        {
            MongodbHelper helper = new MongodbHelper();

            //修改jack941改成mary
            var single = helper.Single(i => i.Name == "jack941");
            single.Name = "mary";
            helper.Update(single, i => i.ID == single.ID);

            Console.WriteLine("修改成功");
            Console.Read();
        }

\

<3>Delete: 删除mary这条记录


static void Main(string[] args)
        {
            MongodbHelper helper = new MongodbHelper();

            //删除mary这个记录
            helper.Delete(i => i.Name == "mary");

            Console.WriteLine("删除成功");
            Console.Read();
        }

\


<4> list操作: 这里我获取一下名字里面带9的人数列表


static void Main(string[] args)
        {
            MongodbHelper helper = new MongodbHelper();

            int pagecount;

            //获取名字里面带9的人数
            var list = helper.List(1, 20, i => i.Name.Contains("9"), out pagecount);

           Console.Read();
        }

\

总的运行代码


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;
using System.Linq.Expressions;

using MongoDB.Configuration;
using MongoDB.Linq;
using MongoDB.Attributes;


namespace MongoDB.Test
{
    public class MongodbHelper where T : class
    {
        string connectionString = string.Empty;

        string databaseName = string.Empty;

        string collectionName = string.Empty;

        static MongodbHelper mongodb;

        #region 初始化操作
        /// 
/// 初始化操作
/// 
        public MongodbHelper()
        {
            connectionString = "Server=127.0.0.1:2222";
            databaseName = "shopex";
            collectionName = "person";
        }
        #endregion

        #region 实现linq查询的映射配置
        /// 
/// 实现linq查询的映射配置
/// 
        public MongoConfiguration configuration
        {
            get
            {
                var config = new MongoConfigurationBuilder();

                config.Mapping(mapping =>
                {
                    mapping.DefaultProfile(profile =>
                    {
                        profile.SubClassesAre(t => t.IsSubclassOf(typeof(T)));
                    });
                    mapping.Map();
                    mapping.Map();
                });

                config.ConnectionString(connectionString);

                return config.BuildConfiguration();
            }
        }
        #endregion

        #region 插入操作
        /// 
/// 插入操作
/// 
/// 
/// 
        public void Insert(T t)
        {
            using (Mongo mongo = new Mongo(configuration))
            {
                try
                {
                    mongo.Connect();

                    var db = mongo.GetDatabase(databaseName);

                    var collection = db.GetCollection(collectionName);

                    collection.Insert(t, true);

                    mongo.Disconnect();

                }
                catch (Exception)
                {
                    mongo
首页 上一页 1 2 3 下一页 尾页 2/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇查询性能“逆袭”―巧用“BETWEE.. 下一篇到底该不该继续使用MySQL数据库?

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: