今项目使用Mongodb,C#操作MongoDB使用MongoDB.Driver.dll库(Nuget),写了个小Demo,如下:
using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; using System.Text; using MongoDB.Driver; namespace MongoBase { internal class MongoBase { private static string _connStr = "mongodb://root:123456@127.0.0.1:27017"; private static string _dbName = "test"; private static MongoUrl url = new MongoUrl(_connStr); private static MongoClient client = new MongoClient(url); public static IMongoDatabase db = client.GetDatabase(_dbName); } public class MongoHelper<TEntity> { public string Name => typeof(TEntity).Name; public IMongoCollection<TEntity> Collection => MongoBase.db.GetCollection<TEntity>(Name); public List<TEntity> Queryable => Collection.AsQueryable().ToList(); public FilterDefinitionBuilder<TEntity> Filter => Builders<TEntity>.Filter; public UpdateDefinitionBuilder<TEntity> Update => Builders<TEntity>.Update; public ProjectionDefinitionBuilder<TEntity>Projection=> Builders<TEntity>.Projection; } }
using System; using System.Collections.Generic; using System.Text; using MongoDB.Bson; using MongoDB.Bson.Serialization.Attributes; namespace MongoBase { public class EntityBase { public EntityBase() { _id = ObjectId.GenerateNewId(); createTime = DateTime.Now; isDelete = false; id = _id.ToString(); } [BsonId] public ObjectId _id { get; set; } public string id { get; set; } public DateTime? createTime { get; set; } public bool? isDelete { get; set; } } }
using MongoBase; using MongoDB.Bson; using MongoDB.Bson.Serialization.Attributes; namespace ConsoleApp5 { internal class Video : EntityBase { public string Title { get; set; } public string Category { get; set; } public int Minutes { get; set; } public string Comments { get; set; } } }
using System; using System.Collections.Generic; using MongoBase; using MongoDB.Bson; using MongoDB.Driver; using MongoDB.Driver.Linq; namespace ConsoleApp5 { class Program { static void Main(string[] args) { MongoHelper<Video> videoHelper = new MongoHelper<Video>(); //新增 videoHelper.Collection.InsertOne(new Video() { Title = "ggg" }); //查找集合 var list = videoHelper.Collection.Find(videoHelper.Filter.Eq(e => e.Category, "Horror")).ToList(); list = videoHelper.Collection.Find(videoHelper.Filter.Eq(e => e.Title, "ggg")).ToList(); //方式一:拼接查找条件 List<FilterDefinition<Video>> listFilter = new List<FilterDefinition<Video>>() { videoHelper.Filter.Eq(e=>e.Minutes,118), videoHelper.Filter.Eq(e=>e.Title,"The Perfect Developer") }; //根据查找多个条件筛选集合 list = videoHelper.Collection.Find(videoHelper.Filter.And(listFilter)).ToList(); //方式二:拼接查找条件 var filter = videoHelper.Filter.Eq(e => e.Title, "cys") & videoHelper.Filter.Eq(e => e.Category, "cys"); list = videoHelper.Collection.Find(filter).ToList(); //拼接更新字段 var updateDefinition = new List<UpdateDefinition<Video>>() { videoHelper.Update.Set(e=>e.Title, "cys"), videoHelper.Update.Set(e=>e.Category, "cys") }; //按照条件更新 videoHelper.Collection.UpdateMany(videoHelper.Filter.And(listFilter), videoHelper.Update.Combine(updateDefinition)); //删除 videoHelper.Collection.DeleteOne(videoHelper.Filter.Eq(e => e.Title, "Lost In Frankfurt am Main")); //获取某个字段 filter = videoHelper.Filter.Eq(e => e.Title, "ggg"); var bson = videoHelper.Collection.Find(filter).Project(videoHelper.Projection.Include(e => e.Title).Exclude(e => e._id)).FirstOrDefault(); } } }
注:时间类型的属性,存入MongoDB后会比北京时间少8小时,是由于默认写入的是世界标准时间,可在时间类型属性上添加
[BsonDateTimeOptions(Kind = DateTimeKind.Local)]
public DateTime createTime { get; set; }
的特性,这样取出来之后就是北京时间。
以上就是C# 操作 MongoDB的示例demo的详细内容,更多关于C# 操作 MongoDB的资料请关注小牛知识库其它相关文章!
本文向大家介绍C#操作Word打印的示例,包括了C#操作Word打印的示例的使用技巧和注意事项,需要的朋友参考一下 话不多说,解释在代码注释中…… 创建一个打印窗体 设计页面代码: 操作代码: 以上就是C#操作Word打印的示例的详细内容,更多关于C#操作Word打印的资料请关注呐喊教程其它相关文章!
本文向大家介绍node.js操作mongodb简单示例分享,包括了node.js操作mongodb简单示例分享的使用技巧和注意事项,需要的朋友参考一下 前两篇文章我们介绍了nodejs操作redis和MySQL,下面简要测试一下nodejs操作mongodb: 首先安装nodejs mongodb 代码
本文向大家介绍Python操作MongoDB数据库的方法示例,包括了Python操作MongoDB数据库的方法示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python操作MongoDB数据库的方法。分享给大家供大家参考,具体如下: 更多关于Python相关内容感兴趣的读者可查看本站专题:《Python常见数据库操作技巧汇总》、《Python数学运算技巧总结》、《Python数据结构
本文向大家介绍Java操作MongoDB数据库示例分享,包括了Java操作MongoDB数据库示例分享的使用技巧和注意事项,需要的朋友参考一下 MongoDB是一个文档型数据库,是NOSQL家族中最重要的成员之一,以下代码封装了MongoDB的基本操作。 MongoDBConfig.java MongoService.java MongoServiceImpl.java
本文向大家介绍node.js操作mongoDB数据库示例分享,包括了node.js操作mongoDB数据库示例分享的使用技巧和注意事项,需要的朋友参考一下 连接数据库 插入数据: 插入数据后,在控制台中输出数据文档的内容 关闭数据库db.close([forceClose],[callback]); forceClose为true时,强制关闭该数据库,当数据库关闭后,不可再使用open开启数据库.
本文向大家介绍php中的mongodb select常用操作代码示例,包括了php中的mongodb select常用操作代码示例的使用技巧和注意事项,需要的朋友参考一下 前面说到了mongodb安装,配置,集群,以及php的插入与更新等,请参考:mongodb。 下面说一下,mongodb select的常用操作 测试数据: 1、取表条数 php代码如下,按顺序对应的: 提示:$gt为大于、$g