1. MongoDB の序文と紹介##最近統合中私自身のフレームワークでは、MongoDBD の最も単純な CRUD をコンポーネントとしてリファクタリングし、asp.net core プロジェクトに統合しました。もちろん、この記事では mongodb のクラスター展開については説明しません。機会があれば共有します。
まず、MongoDB の公式ドキュメントでは、MongoDb の 2.4 以降の .Net ドライバーが .Net Core 2.0 をサポートしていることがわかります。
MongoDB については、誰もがよく知っており、使用したことがなくても聞いたことがあると思います。
ASP.NET ビデオ チュートリアル#1. mongodb とは何ですか?
MongoDB は、分散ファイル ストレージに基づくデータベースです。Web アプリケーションにスケーラブルで高性能のデータ ストレージ ソリューションを提供します。リレーショナル データベースと非リレーショナル データベースの中間の製品です。リレーショナル: 最も機能が豊富なデータベース。データ処理のための強力なツールです。
2. リレーショナル データベースと非リレーショナル データベースとは何ですか?リレーショナル データベース: 私たちが使用した sqlserver や mysql などはすべてリレーショナル データベースであり、リレーショナル データベースは ACID 原則に従い、厳密な一貫性を持っています。
非リレーショナル データベース: NoSQL とも呼ばれ、非常に大規模なデータを保存するために使用されます。このタイプのデータ ストレージは固定モデルを必要とせず、冗長な操作なしで水平に拡張できます。
3. RDBMS VS NoSQLRDBMS:
高度に組織化された構造化データ
構造化クエリ言語
データとリレーションシップは別のテーブルに保存されます
厳密な一貫性
基本トランザクション
NoSQL:
宣言型クエリ言語なし
Key-値ペア ストレージ、列ストレージ、ドキュメント ストレージなど。
結果整合性
構造化されていない予測不可能なデータ
CAP 定理、高可用性、高パフォーマンス、高スケーラビリティ
この時点で、洞察力の鋭い学生は CAP 定理と結果整合性に気づき、間違いなく分散システムについて考えるようになるはずです。分散システムの nosql と完全に組み合わせることで、パフォーマンスを向上させることができます。
4. 誰もが理解できるように、RDBMS と Mongodb の概念をいくつか紹介します。
次のように翻訳します。
1. デモの便宜のために、私はダウンロードしましたmongodb サーバーの Windows バージョン
公式 Web サイトにアクセスして自分でダウンロードできます。ビジュアル インターフェイスには Robo 3T ツールを使用しました。非常にシンプルで美しい視覚化ツール。誰でも使えるのでおすすめです。
インストールが完了すると、Windows サービスに mongodb サーバーが表示されます。次に、Robo 3T を開いて mongodb に接続します。
2. プロジェクトで mongodb の構成を開始しましょう
最初のステップ: 新しい Core2 を作成します。 0 クラス ライブラリ
では、「MongoDB.Driver」nuget パッケージが導入されています。
次に、Startup.csの Services の拡張メソッドを拡張しました。//扩展方法public static class ServiceCollectionExtensions { public static void AddMongoDB(this IServiceCollection services, IConfiguration configuration) { services.Configure<Settings>(options => { options.ConnectionString = configuration.GetSection("MongoConnection:ConnectionString").Value; options.Database = configuration.GetSection("MongoConnection:Database").Value; }); } }
2 番目のステップ: mongodb をカプセル化する CRUD クラスをリファクタリングします。ここで自分でカプセル化し、表示するだけにすることもできます。検索して追加します。
public class MongoDBBase { private readonly IMongoDatabase _database = null; public MongoDBBase(string connectionString, string databaseName) { var client = new MongoClient(connectionString); if (client != null) { _database = client.GetDatabase(databaseName); } } #region SELECT /// <summary> /// 根据查询条件,获取数据 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="id"></param> /// <returns></returns> public List<T> GetList<T>(Expression<Func<T, bool>> conditions = null) { var collection = _database.GetCollection<T>(typeof(T).Name); if (conditions != null) { return collection.Find(conditions).ToList(); } return collection.Find(_ => true).ToList(); }#endregion #region INSERT/// <summary> /// 插入多条数据,数据用list表示 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="list"></param> /// <returns></returns> public List<T> InsertMany<T>(List<T> list) { var collection = _database.GetCollection<T>(typeof(T).Name); collection.InsertMany(list); return list; } #endregion }ステップ 3: 新しい asp.net core webapi プロジェクトを作成し、デモンストレーション用にこのタイプのライブラリを参照します
mongodb を appsetting.json に追加します。 project 接続文字列: ここではカスタム データ名 testdb を使用します。mongodb に挿入すると、データベース、コレクション、ドキュメントが自動的に作成されます。次に、下を見てください
"MongoConnection": { //mongodb数据库连接 "ConnectionString": "mongodb://127.0.0.1:27017", "Database": "testdb", "IsSSL": true },
ステップ 4: 新しい mongodb テスト コントローラーを作成し、単一および複数の項目を挿入してクエリを実行するためのインターフェイスを表示します。
[Produces("application/json")] [Route("api/MongoDB/[action]")] public class MongoDBController : Controller { private readonly MongoDBBase _context = null; public MongoDBController(IOptions<Settings> settings) { _context = new MongoDBBase(settings.Value.ConnectionString, settings.Value.Database); } [HttpGet] public IActionResult AddList() { List<MongoDBPostTest> list = new List<MongoDBPostTest>() { new MongoDBPostTest() { Id = "2", Body = "Test note 3", UpdatedOn = DateTime.Now, UserId = 1, HeaderImage = new NoteImage { ImageSize = 10, Url = "http://localhost/image1.png", ThumbnailUrl = "http://localhost/image1_small.png" } }, new MongoDBPostTest() { Id = "3", Body = "Test note 4", UpdatedOn = DateTime.Now, UserId = 1, HeaderImage = new NoteImage { ImageSize = 14, Url = "http://localhost/image3.png", ThumbnailUrl = "http://localhost/image3_small.png" } } }; try { _context.InsertMany(list); } catch (Exception ex) { throw; } return Ok("成功"); } [HttpGet] public Result<List<MongoDBPostTest>> SelectSingle() { //无条件 var list = _context.GetList<MongoDBPostTest>(); //有条件 //var list = _context.GetList<MongoDBPostTest>(a => a.Id == "1"); //得到单条数据,无条件 //var list = _context.GetSingle<MongoDBPostTest>(); //得到单条数据,有条件 //var list = _context.GetSingle<MongoDBPostTest>(a => a.Id == "3"); ObjectId internalId = _context.GetInternalId("5bbf41651d3b66668cbb5bfc"); var a = _context.GetSingle<MongoDBPostTest>(note => note.Id == "5bbf41651d3b66668cbb5bfc" || note.InternalId == internalId); return ResHelper.Suc(1, list, "成功"); } }テスト クラス
public class MongoDBPostTest { [BsonId] // standard BSonId generated by MongoDb public ObjectId InternalId { get; set; } public string Id { get; set; } public string Body { get; set; } = string.Empty; [BsonDateTimeOptions] public DateTime UpdatedOn { get; set; } = DateTime.Now; public NoteImage HeaderImage { get; set; } public int UserId { get; set; } = 0; } public class NoteImage { public string Url { get; set; } = string.Empty; public string ThumbnailUrl { get; set; } = string.Empty; public long ImageSize { get; set; } = 0L; }
ステップ 5: プロジェクトを実行して実行します。
複数のデータを挿入してみましょう。実行は成功します。
その後、データベースを調べたところ、データ コンテンツを含む testdb データベースが生成されていることがわかりました。
次に、次のクエリ操作を実行します。挿入したばかりのデータを返します。
注: ここで解決すべき落とし穴があります。それは、mongodb に保存されている時刻は UTC であるということです。時差は8時間です。したがって、ここでは特別な処理時間が必要になります。
3. 概要
この時点では、mongodb の簡単な使用法が示されています。後で、公式に従って拡張できます。ドキュメントを読み、さらに拡張してみると、ますます興味深いことがわかるでしょう。ご協力ありがとうございました。ありがとう。
以上がMongoDB を asp.net コアと統合するための完全な手順を学習します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

C#.NET開発を開始するには、次のことが必要です。1。C#の基本的な知識と.NETフレームワークのコア概念を理解する。 2。変数、データ型、制御構造、関数、クラスの基本概念をマスターします。 3。LINQや非同期プログラミングなど、C#の高度な機能を学習します。 4.一般的なエラーのためのデバッグテクニックとパフォーマンス最適化方法に精通してください。これらの手順を使用すると、C#.NETの世界に徐々に浸透し、効率的なアプリケーションを書き込むことができます。

C#と.NETの関係は切り離せませんが、同じものではありません。 C#はプログラミング言語であり、.NETは開発プラットフォームです。 C#は、コードの書き込み、.NETの中間言語(IL)にコンパイルされ、.NET Runtime(CLR)によって実行されるために使用されます。

C#.NETは、複数のアプリケーション開発をサポートする強力なツールとライブラリを提供するため、依然として重要です。 1)C#は.NETフレームワークを組み合わせて、開発を効率的かつ便利にします。 2)C#のタイプの安全性とゴミ収集メカニズムは、その利点を高めます。 3).NETは、クロスプラットフォームの実行環境とリッチAPIを提供し、開発の柔軟性を向上させます。

c#.netisversatileforbothwebanddesktopdevelopment.1)forweb、useasp.netfordynamicapplications.2)fordesktop、equindowsorwpfforrichinterfaces.3)usexamarinforcross-platformdeveliment、enabling deshacrosswindows、

C#と.NETは、継続的な更新と最適化を通じて、新しいテクノロジーのニーズに適応します。 1)C#9.0および.NET5は、レコードタイプとパフォーマンスの最適化を導入します。 2).Netcoreは、クラウドネイティブおよびコンテナ化されたサポートを強化します。 3)ASP.Netcoreは、最新のWebテクノロジーと統合されています。 4)ML.NETは、機械学習と人工知能をサポートしています。 5)非同期プログラミングとベストプラクティスはパフォーマンスを改善します。

c#.netissuitableforenterprise-levelApplicationsとsystemduetoitsSystemdutyping、richlibraries、androbustperformance.

.NETでのC#のプログラミングプロセスには、次の手順が含まれます。1)C#コードの作成、2)中間言語(IL)にコンパイルし、3).NETランタイム(CLR)によって実行される。 .NETのC#の利点は、デスクトップアプリケーションからWebサービスまでのさまざまな開発シナリオに適した、最新の構文、強力なタイプシステム、および.NETフレームワークとの緊密な統合です。

C#は、Microsoftによって開発された最新のオブジェクト指向プログラミング言語であり、.NETフレームワークの一部として開発されています。 1.C#は、カプセル化、継承、多型を含むオブジェクト指向プログラミング(OOP)をサポートしています。 2。C#の非同期プログラミングは非同期を通じて実装され、適用応答性を向上させるためにキーワードを待ちます。 3. LINQを使用してデータ収集を簡潔に処理します。 4.一般的なエラーには、null参照の例外と、範囲外の例外インデックスが含まれます。デバッグスキルには、デバッガーと例外処理の使用が含まれます。 5.パフォーマンスの最適化には、StringBuilderの使用と、不必要な梱包とボクシングの回避が含まれます。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

ドリームウィーバー CS6
ビジュアル Web 開発ツール

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、
