首先到 https://github.com/mongodb/mongo-csharp-driver/downloads 下载Mongo官方驱动

下载完成后引用到项目中

    public  class ConnHelp
{
public static string ConnectionString = "mongodb://127.0.0.1:27017/qiao";
public static MongoDatabase GetDatabaseFromUrl(MongoUrl url)
{
var client = new MongoClient(url);
var server = client.GetServer();
return server.GetDatabase(url.DatabaseName);
}
public static MongoDatabase GetDatabaseFromConnectionString(string connectionstring)
{
return GetDatabaseFromUrl(new MongoUrl(connectionstring));
}
public static MongoCollection<T> GetCollection<T>(string collectionName)
{
return GetDatabaseFromConnectionString(ConnectionString).GetCollection<T>(collectionName);
}
}
using MongoDB.Bson;
using MongoDB.Driver;
using MongoDB.Driver.Builders;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace MognoLearn
{
class Program
{
static void Main(string[] args)
{
MongoCollection<aa> tt = ConnHelp.GetCollection<aa>("aa"); //List<aa> = tt.FindAll().ToList();
var query = Query.And(Query<aa>.EQ(x => x.name,"张三"));
//{ "name" : "张三" }
List<aa> ll = tt.Find(query).ToList();//根据 query 的条件返回数据
List<aa> list = tt.FindAll().ToList();//查询 全部的数据
List<string> str = new List<string>();
str.Add("张三");
str.Add("李四");
query = Query.And(
Query<aa>.In(x=>x.name,str)
);
//{ "name" : { "$in" : ["张三", "李四"] } }
list = tt.Find(query).ToList(); //对数据库中的内嵌文档books进行聚合
//如果需要过滤掉一些数据在这个地方写过滤条件
//var match = new BsonDocument
//{
// {
// "$match",
// query.ToBsonDocument()
// }
//}; var unwind = new BsonDocument
{
{
"$unwind",
"$books"
}
};
//unwind 后面也可以写一些过滤条件,用来过滤掉一些拆分后可能不需要的数据
var group = new BsonDocument
{
{
"$group",
new BsonDocument
{
{
"_id", new BsonDocument
{
{ "books","$books.name" },
{ "money","$money" }
}
},
{
"Count", new BsonDocument
{
{ "$sum" , }
}
}
}
}
};
AggregateResult use = tt.Aggregate(unwind, group);
var sttr = use.Response.ToList()[].Value;
//{[{ "_id" : { "books" : "生物" }, "Count" : 1 }, { "_id" : { "books" : "地理" }, "Count" : 1 }, { "_id" : { "books" : "化学" }, "Count" : 4 },
         { "_id" : { "books" : "英语" }, "Count" : 2 }, { "_id" : { "books" : "语文" }, "Count" : 7 }, { "_id" : { "books" : "数学" }, "Count" : 2 }, { "_id" : { "books" : "mongo权威指南" }, "Count" : 1 }]} Console.ReadLine();
}
}
}
namespace MognoLearn
{
public class aa
{
//[BsonId]
[BsonRepresentation(BsonType.ObjectId)]
public string id { get; set; }
public string name { get; set; }
public List<book> books { get; set; }
//[BsonDateTimeOptions(Kind = DateTimeKind.Local)]
//public DateTime AddTime { get; set; }
} public class book
{
public string name { get; set; }
public double money { get; set; }
public int page { get; set; }
}
}

使用Mongo官方驱动操作Mongo数据库的更多相关文章

  1. MongoDB基础入门003--使用官方驱动操作mongo,C#

    本篇先简单介绍一下,使用官方驱动来操作MongoDB.至于MongoDB原生的增删改查语句,且等以后再慢慢学习. 一.操作MongoDB的驱动主要有两个 1.官方驱动:https://github.c ...

  2. [转载]在C#中使用官方驱动操作MongoDB

    在C#中使用官方驱动操作MongoDB 8.1)下载安装 想要在C#中使用MongoDB,首先得要有个MongoDB支持的C#版的驱动.C#版的驱动有很多种,如官方提供的,samus. 实现思路大都类 ...

  3. C#中使用官方驱动操作MongoDB

    想要在C#中使用MongoDB,首先得要有个MongoDB支持的C#版的驱动.C#版的驱动有很多种,如官方提供的,samus. 实现思路大都类似.这里我们先用官方提供的mongo-csharp-dri ...

  4. 在C#中使用官方驱动操作MongoDB

    MongoDB的官方驱动下载地址:https://github.com/mongodb/mongo-csharp-driver/releases 目前最新的版本是2.10,支持.NET 4.5以上.由 ...

  5. mongo官方企业版安装及数据库授权使用

    通过安装.deb包的方式,系统是Ubuntu 16.04 1. Import the public key used by the package management system.(导入包管理系统 ...

  6. 使用MongoDB C#官方驱动操作MongoDB

    想要在C#中使用MongoDB,首先得要有个MongoDB支持的C#版的驱动.C#版的驱动有很多种,如官方提供的,samus. 实现思路大都类似.这里我们先用官方提供的mongo-csharp-dri ...

  7. C#/.NET 使用官方驱动操作MongoDB(一):插入、查询

    概述 想要在C#中使用MongoDB,首先得要有个MongoDB支持的C#版的驱动. C#版的驱动有很多,这里我们先用官方提供的 MongoDB.Driver(使用 Nuget 安装),当前版本为2. ...

  8. 在C#中使用官方驱动操作MongoDB ---转载

    http://blog.csdn.net/dannywj1371/article/details/7440916

  9. MongoDB学习笔记~关于官方驱动集成IQueryable之后的一些事

    回到目录 关于官方驱动集成IQueryable之后的一些事,有好事也有坏事,好事就是它会将你的linq语句非常友好的翻译成MongoDB语句,而坏事就是有一些linq语句不会被翻译,不会被翻译的代价就 ...

随机推荐

  1. wordpress修改上传文件大小限制

    在为有的客户搭建 WordPress 网站时,有时会遇到因为所在的服务器限制了上传文件大小而无法上传较大的附件,WordPress的媒体文件上传可以看到,大多数都是2MB或者8MB.如果是图片的话可能 ...

  2. 每天一个linux命令--locate

    linux下,不知道自己安装的程序放在哪里了,可以使用locate命令进行查找. [hongye@dev107 ~]$ locate activemq.xml /home/hongye/hongyeC ...

  3. 每天一个linux命令---kill

    linux中终止进程的命令--kill 一般用的是: 搜索pid: ps -ef|grep calendar 杀死pid:kill -9 pid 格式是:kill[参数][进程号]

  4. CF460 A. Vasya and Socks

    A. Vasya and Socks time limit per test 1 second memory limit per test 256 megabytes input standard i ...

  5. 使用CSS代码修改博客模板

    在修改设置使公告栏里的头像更新为新的头像时发现里边还有“页面定制CSS代码”这一选项,查了一下发现这东西可以对页面做一些个性化的调整.正好目前我使用的这个模板标题和导航栏的字体实在难看,顺手修改了一下 ...

  6. MyIsam和InnoDB的区别

    个人见解: 1.最主要的差别就是Innodb 支持事务处理与外键和行级锁.而MyISAM不支持 所以有用到事务处理和外键的,要用Innodb 2. InnoDB 中不保存表的具体行数,也就是说,执行s ...

  7. ACM 一种排序

    一种排序 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述 现在有很多长方形,每一个长方形都有一个编号,这个编号可以重复:还知道这个长方形的宽和长,编号.长.宽都是整数 ...

  8. [WP8.1UI控件编程]SemanticZoom控件实现分组列表

    11.1.5 SemanticZoom实现分组列表 SemanticZoom控件可以让用户实现一种更加高级的列表,这种列表可以对列表的项目进行分组,同时这个SemanticZoom控件会提供两个具有相 ...

  9. Crystal Reports 2008(水晶报表) 安装

    这篇blog主要是介绍Crystal Reports2008(水晶报表)的安装. 首先我们应该知道Crystal Reports 有什么作用? 从这里Crystal Reports 你可以了解到它的一 ...

  10. FMS Camera对象设置说明

    目录: 1.setQuality(Camera.setQuality方法)2.quality(Camera.quality属性)3.setMode(Camera.setMode方法)4.onActiv ...