MongoDB 之C#实践

官方驱动: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;
                }
            }
        }
    }
}
时间: 2024-12-28 20:24:29

MongoDB 之C#实践的相关文章

Mongodb基础操作实践- -Mongodb Shell端

一.连接 1.mongo mongodb://localhost:27000 2. show databases(dbs) use test 3. db show collections 二.插入 1.db.proccessedfile.insertone({fileName:"20170403/3.gz", processedDate:new ISODate(), dataNumber:10000, x:10}) 2.db.mongodb.insertMany([    { item

mongodb 安装配置实践

首先从官网下载mongodb的安装包http://www.mongodb.org/downloads我的系统是redhat5.8所有选择相应的版本包就ok现在最新版是3.0.3 解压mongodb-linux-x86_64-rhel55-3.0.3.tgz [[email protected] ~]# tar zxvf mongodb-linux-x86_64-rhel55-3.0.3.tgz -C /opt/ mongodb-linux-x86_64-rhel55-3.0.3/README m

mongodb运维之副本集实践

忽然发现芋头好鸡贼 正式环境,4台机器+一台定时任务的机器.服务器是阿里云的ECS,负载均衡用的是阿里云的SLB,mysql用阿里云的RDS,缓存用阿里云的OCS,运维基本上是都不需要担心了,现在的云服务已经非常完善了,其实我们用阿里云的服务非常多,大概有20多个类型的服务,感谢阿里云. 而我的技术栈是nodejs + mongodb,而阿里云有k-v兼容redis协议的nosql,无mongodb,所以就要悲剧的自己运维mongodb了. 阿里的ots是非结构化存储,没有nodejs的sdk,

MEAN实践——LAMP的新时代替代方案(下)

[编者按]在九十年代,Linux+Apache+Mysql+PHP 架构曾风靡一时,直到现在仍然是众多 Web 应用程序的基本架构.然而随着需求的变迁和数据流量的激增,LAMP 已不可避免的走下神坛.近日,在 MongoDB Blog 中,Dana Groce 介绍了一个基于新时代架构的实践——MEAN,MongoDB/Mongoose.js.Express.js.Angular.js 和 Node.js.本文系 OneAPM 工程师编译整理: MEAN实践——LAMP的新时代替代方案(上) 在

Spring Boot实践教程:开篇

前言 ??Java项目开发Spring应该是最常被用到的框架了,但是老式的配置方式让人觉得特别的繁琐,虽然可以通过注解去简化xml文件的配置,但是有没有更简单的方式来帮我们完成这些重复性的事情呢?于是Spring Boot就出现了,Spring Boot极大的简化了Spring的应用开发,它采用约定优于配置的方式,让开发人员能够快速的搭建起项目并运行起来. ??我们在项目开发的过程中,总免不了要整合各种框架,类似什么SSM.SSH之类的,这些框架的整合过程是繁琐的,同时又是无聊的,因为大部分情况

前端工具集合

前端组织 虽混过外企俩家,但劳资英文这项的技能点还是灰色的...so,俺关注的站点主要以中文为主 名称 推荐指数 备注/说明 Git ★★★★★ 劳资清楚这不是个纯粹的前端社区... 但作为全球最大的搞基社区,无数前端项目在这启航 没Git都不好意思面基有木有! MDN ★★★★★ 不解释,无数的资源再等着你探索 Awesomes.cn ★★★★☆ 国人维护的前端资源库,深度对接到 Github 慕课 ★★★★☆ 大量的在线计算机课程. 虽然初.中级居多,但是不乏有巨作值得细细品尝 W3Cplu

大前端工具集

来自:https://github.com/nieweidong/fetool 作者: 微博 @聂微东 个人 Blog fefork.com 博客园 犀利的东哥   目录 前端组织/前端博客 博客搭建 HTML CSS 浏览端 JS Project Build Node Package Node Project 精选阅读 前端技术 Node 学习资料 前端面试 其他技术 工具/软件 Web APP Mac Linux Chrome Plugins Git 服务端 数据端 设计/交互 速查手册 杂

奔跑吧2015:推荐给程序员的技术书

时光飞逝,不知不觉,走过了 2014,在 2015 年加倍努力,与大家一起分享好书. 2015 年,首月,好多技术书的付印计划摆在面前十几本,筛选一再斟酌,最后敲定以下技术书给大家.如果喜欢这一期的技术书,就分享给更多的小伙伴们吧! 特别推荐 1.第一本 Docker 书 Docker 公司前服务与支持副总裁力作 全球第一本 Docker 技术图书 学习 Docker 必备的第一本书 <第一本 Docker 书>由 Docker 公司前服务与支持副总裁 James Turnbull 编写,是权

nodejs和mongodb实践

首先,当然是都安装了nodejs 和mongodb了.这必须是前提条件. 现在我们要用nodejs连接mongodb数据库了.我这里只是一个非常非常简单是实践,初学嘛.更深入的学习之后,我会仔细写笔记记录的.自己走过的弯路,遇到的问题,肯定有价值的.好了,不多说了,开始动手吧. 我是在D盘nodework目录下创建了一个mytest文件夹的,然后在里面创建一个test.js.接着用npm安装mongodb,在cmd窗口找到新建的文件夹目录,命令 npm install mongodb 这样只会在