.net 操作MongoDB 基础
1. 下载驱动,最好使用 NuGet 下载,直接搜索MongoDB;
2. 引用相关驱动
3. 部分测试代码,主要是针对MongoDB的GridFS 文件存储来用
using Mongo.Model;
using MongoDB.Bson;
using MongoDB.Driver;
using MongoDB.Driver.GridFS;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using System.Web; namespace Mongo.Helper
{
public static class MongoDBHelper
{ public static MongoClient client = new MongoClient("mongodb://localhost:27017");
public static IMongoDatabase db = client.GetDatabase("dzdaTest");//获取需要操作数据库
public static void Add(Model.UserInfo user)
{
var collects = db.GetCollection<Model.UserInfo>("user");//获取需要操作的集合
collects.InsertOne(user);
} public static List<UserInfo> FindAll()
{
List<UserInfo> lis = new List<UserInfo>();
var collects = db.GetCollection<UserInfo>("user");
var filter = new BsonDocument();
using(var cursor = collects.Find(filter).ToCursor())//查询结果转化为类似游标的类型
{
while (cursor.MoveNext())
{
foreach (UserInfo item in cursor.Current)
{
lis.Add(item);
}
}
}
return lis;
} /// <summary>
/// 上传图片
/// </summary>
/// <param name="name"></param>
/// <param name="source"></param>
/// <returns></returns>
public static ObjectId UploadImg(string name, byte[] source)
{
var bucket = new GridFSBucket(db);//初始化GridFS
return bucket.UploadFromBytes(name, source);
}
/// <summary>
/// 上传图片
/// </summary>
/// <param name="name"></param>
/// <param name="source"></param>
/// <returns></returns>
public static ObjectId UploadImg(string name, Stream source)
{
var bucket = new GridFSBucket(db);
return bucket.UploadFromStream(name, source);
} public async static Task<ObjectId> UploadImgAsync(string name, Stream source)
{
var bucket = new GridFSBucket(db);
return await bucket.UploadFromStreamAsync(name, source);
}
/// <summary>
/// 查询图片
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public static Stream FindImg(string id)
{
var bucket = new GridFSBucket(db);
ObjectId objId= new ObjectId(id);//通过ObjectId查询图片
return bucket.OpenDownloadStream(objId);
} /// <summary>
/// 查询图片
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public static byte[] FindImgWithByte(string id)
{
var bucket = new GridFSBucket(db);
ObjectId objId = new ObjectId(id);
return bucket.DownloadAsBytes(objId);
}
}
}
.net 操作MongoDB 基础的更多相关文章
- windows下mongodb基础玩法系列二CURD操作(创建、更新、读取和删除)
windows下mongodb基础玩法系列 windows下mongodb基础玩法系列一介绍与安装 windows下mongodb基础玩法系列二CURD操作(创建.更新.读取和删除) windows下 ...
- MongoDB基础入门003--使用官方驱动操作mongo,C#
本篇先简单介绍一下,使用官方驱动来操作MongoDB.至于MongoDB原生的增删改查语句,且等以后再慢慢学习. 一.操作MongoDB的驱动主要有两个 1.官方驱动:https://github.c ...
- 【mongoDB基础篇①】安装与常用操作语句
简述 mongoDB与redis同为noSql数据库,但是redis为kv数据库(key/value),而mongoDB为文档型数据库存储的是文档(Bson->json的二进制化).内部执行引擎 ...
- koa 基础(二十一)nodejs 操作mongodb数据库 --- 查询数据
1.app.js /** * nodejs 操作mongodb数据库 * 1.安装 操作mongodb * cnpm install mongodb --save * 2.引入 mongodb 下面的 ...
- koa 基础(二十)nodejs 操作mongodb数据库 --- 新增数据
1.app.js /** * nodejs 操作mongodb数据库 * 1.安装 操作mongodb * cnpm install mongodb --save * 2.引入 mongodb 下面的 ...
- Python 操作 mongodb 数据库
原文地址:https://serholiu.com/python-mongodb 这几天在学习Python Web开发,于 是做准备做一个博客来练练手,当然,只是练手的,博客界有WordPress这样 ...
- mongodb基础系列——数据库查询数据返回前台JSP(一)
经过一段时间停顿,终于提笔来重新整理mongodb基础系列博客了. 同时也很抱歉,由于各种原因,没有及时整理出,今天做了一个demo,来演示,mongodb数据库查询的数据在JSP显示问题. 做了一个 ...
- MongoDB 基础(2019年开篇)
MongoDB基础知识: 1.什么是MongoDB NoSQL(NoSQL=Not Only SQL),意即"不仅仅是SQL". MongoDB是一个介于关系数据库和非关系数据库之 ...
- MongoDB基础学习
*:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* ...
随机推荐
- logstash与kafka消息传输<一>
1.版本: logstash6.1.2.kafka-0.11.kafka-0.8.2.java1.8 Note: Logstash requires Java 8. Java 9 is not sup ...
- [总结]多项式求逆代替分治 $\text{FFT}$
目录 问题提出 求逆代替分治 代码实现 由于我懒得不想学蠢得学不会分治 \(\text{FFT}\) ,发现可以用多项式求逆来完整地代替... 文章节选自分治 FFT 与多项式求逆,转载方便自己查看. ...
- Netty 源码阅读的思考------耗时业务到底该如何处理
目录大纲: 前言 处理耗时业务的第一种方式-------handler 种加入线程池 处理耗时业务的第二种方式-------Context 中添加线程池 总结:两种方式的对比和思考 前言 熟悉 Net ...
- .38-浅析webpack源码之读取babel-loader并转换js文件
经过非常非常长无聊的流程,只是将获取到的module信息做了一些缓存,然后生成了loaderContext对象. 这里上个图整理一下这节的流程: 这一节来看webpack是如何将babel-loade ...
- 如何使SpringBoot作为Maven构建的项目的一个子模块
1.问题 一般使用springboot都会引用springboot作为parent,在实际项目中web只是系统模块的一个子集.当然你可以做两个项目来管理,一个项目用来做各种支持包,一个项目专门做web ...
- 图解 SQL-Server新建作业
1,启动SQL Server代理(SQL Server Agent),如下图所示: 2,右击作业--新建作业--常规--填写作业名称 3,步骤--新建 4,步骤名称--数据库名--要执行的存储过程名 ...
- Java基本——数据类型
一.创建一个简单的Java应用程序 public class Code { public static void main(String[]args) { System.out.println(&qu ...
- Sql Server 与 MySql 在使用 update inner join 时的区别
Sql Server -- 不使用别名 UPDATE tb_User SET tb_User.pass = '' FROM tb_User usr INNER JOIN tb_Address addr ...
- 常见hash算法的原理(转)
常见hash算法的原理 散列表,它是基于快速存取的角度设计的,也是一种典型的“空间换时间”的做法.顾名思义,该数据结构可以理解为一个线性表,但是其中的元素不是紧密排列的,而是可能存在空隙. 散列表 ...
- 整数对(hdu1271)找规律
整数对 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submissio ...