亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C# 操作 MongoDB的示例demo

 更新時(shí)間:2020年12月07日 09:47:15   作者:chesterdotchen  
這篇文章主要介紹了C# 操作 MongoDB的示例demo,幫助大家更好的理解和學(xué)習(xí)c#,感興趣的朋友可以了解下

今項(xiàng)目使用Mongodb,C#操作MongoDB使用MongoDB.Driver.dll庫(kù)(Nuget),寫(xiě)了個(gè)小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")
      };

      //根據(jù)查找多個(gè)條件篩選集合
      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"));

      //獲取某個(gè)字段
      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();
    }
  }
}

注:時(shí)間類(lèi)型的屬性,存入MongoDB后會(huì)比北京時(shí)間少8小時(shí),是由于默認(rèn)寫(xiě)入的是世界標(biāo)準(zhǔn)時(shí)間,可在時(shí)間類(lèi)型屬性上添加

[BsonDateTimeOptions(Kind = DateTimeKind.Local)]
public DateTime createTime { get; set; }

的特性,這樣取出來(lái)之后就是北京時(shí)間。

以上就是C# 操作 MongoDB的示例demo的詳細(xì)內(nèi)容,更多關(guān)于C# 操作 MongoDB的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • C#結(jié)合JavaScript實(shí)現(xiàn)上傳視頻到騰訊云點(diǎn)播平臺(tái)的操作方法

    C#結(jié)合JavaScript實(shí)現(xiàn)上傳視頻到騰訊云點(diǎn)播平臺(tái)的操作方法

    這篇文章主要介紹了C#結(jié)合JavaScript實(shí)現(xiàn)上傳視頻到騰訊云點(diǎn)播平臺(tái),上傳視頻功能,主要要解決兩個(gè)問(wèn)題,一是在服務(wù)端通過(guò)C#生成簽名和SDKID,二是在客戶端通過(guò)JavaScript上傳視頻到騰訊云點(diǎn)播服務(wù)器,感興趣的朋友跟隨小編一起看看吧
    2023-11-11
  • C#調(diào)用FFplay實(shí)現(xiàn)播放視頻功能

    C#調(diào)用FFplay實(shí)現(xiàn)播放視頻功能

    這篇文章主要為大家詳細(xì)介紹了C#如何調(diào)用FFplay實(shí)現(xiàn)播放視頻功能,文中的示例代碼講解詳細(xì),具有一定的參考價(jià)值,有需要的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-10-10
  • 詳解 C# 中XML對(duì)象的序列化和反序列化

    詳解 C# 中XML對(duì)象的序列化和反序列化

    這篇文章主要介紹了詳解 C# 中XML對(duì)象的序列化和反序列化,幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下
    2021-02-02
  • C#中實(shí)現(xiàn)屏蔽Ctrl+C的方法

    C#中實(shí)現(xiàn)屏蔽Ctrl+C的方法

    這篇文章主要介紹了C#中實(shí)現(xiàn)屏蔽Ctrl+C的方法,在C#應(yīng)用程序開(kāi)發(fā)中有一定的實(shí)用價(jià)值,需要的朋友可以參考下
    2014-08-08
  • C# 6.0 新特性匯總

    C# 6.0 新特性匯總

    這篇文章主要介紹了C# 6.0 新特性匯總的相關(guān)資料,本文給大家?guī)?lái)了11種新特征,非常不錯(cuò),感興趣的朋友一起看看吧
    2016-09-09
  • 淺析C#中的Main(String[] args)參數(shù)輸入問(wèn)題

    淺析C#中的Main(String[] args)參數(shù)輸入問(wèn)題

    本篇文章主要是對(duì)C#中的Main(String[] args)參數(shù)輸入問(wèn)題進(jìn)行了詳細(xì)的介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助
    2014-01-01
  • C#/VB.NET實(shí)現(xiàn)在 Word 中插入水印?

    C#/VB.NET實(shí)現(xiàn)在 Word 中插入水印?

    這篇文章主要介紹了C#/VB.NET實(shí)現(xiàn)在 Word 中插入水印,水印是指在 Word 文檔的背景中以淡色或灰色顯示的文本或圖像。文章圍繞主題展開(kāi)介紹,需要的朋友可以參考一下
    2022-08-08
  • c# 從IE瀏覽器獲取當(dāng)前頁(yè)面的內(nèi)容

    c# 從IE瀏覽器獲取當(dāng)前頁(yè)面的內(nèi)容

    從IE瀏覽器獲取當(dāng)前頁(yè)面內(nèi)容可能有多種方式,今天我所介紹的是其中一種方法。基本原理:當(dāng)鼠標(biāo)點(diǎn)擊當(dāng)前IE頁(yè)面時(shí),獲取鼠標(biāo)的坐標(biāo)位置,根據(jù)鼠標(biāo)位置獲取當(dāng)前頁(yè)面的句柄,然后根據(jù)句柄,調(diào)用win32的東西進(jìn)而獲取頁(yè)面內(nèi)容。感興趣的朋友可以參考下本文
    2021-06-06
  • C#中尾遞歸的使用、優(yōu)化及編譯器優(yōu)化

    C#中尾遞歸的使用、優(yōu)化及編譯器優(yōu)化

    這篇文章主要介紹了C#中尾遞歸的使用、優(yōu)化及編譯器優(yōu)化,本文講解了遞歸運(yùn)用、尾遞歸優(yōu)化、編譯器優(yōu)化等內(nèi)容,需要的朋友可以參考下
    2015-04-04
  • C# wpf使用ListBox實(shí)現(xiàn)尺子控件的示例代碼

    C# wpf使用ListBox實(shí)現(xiàn)尺子控件的示例代碼

    本文主要介紹了C# wpf使用ListBox實(shí)現(xiàn)尺子控件的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07

最新評(píng)論