MongoDB 是一個(gè)流行的 NoSQL 數據庫,它使用 BSON 格式存儲數據,非常??適合處理大量的非結構化或半結構化數據,C# 中通過(guò) MongoDB 的官方驅動(dòng) MongoDB .NET Driver 來(lái)進(jìn)行操作,下面將詳細介紹 C# 中 MongoDB 的操作方法。
(圖(′?_?`)片來(lái)源網(wǎng)絡(luò ),侵刪)(′_ゝ`)準備工作
1、安裝 MongoDB .NET Driver:你??可以通過(guò) NuGet 包管理器來(lái)安裝 MongoDB .NET Driver。
2、連接到 MongoDB:首先需要創(chuàng )建一個(gè) MongoClient 實(shí)例來(lái)連接到你的 MongoDB 服務(wù)。
var client = new MongoClient("mongodb://localhost:27017");數據庫操作
1、創(chuàng )建數據庫:在 MongoDB 中,數據庫只有在第一次插入數據時(shí)才會(huì )被創(chuàng )建。
var database = client.GetDatabase("my??NewDatabase");2、列(′▽?zhuān)?出所有數據??庫:
var databases = client.ListDatabases().Toヽ(′ー`)ノList();集合操作
var?? collection = database.GetCollection<BsonDocument>("myCollection");2、創(chuàng )建集合:雖然通常不需要手動(dòng)??創(chuàng )建集合,但在某些情況下可能需要。
dat???abase.CreateCollecti(??ヮ?)?*:???on("??newCollection");3、刪除集合:
database.D┐(′д`)┌ropCollection("myCollection");文檔操作(zuo)
1、插入文檔:
var?? document = new BsonDocument { { "name", "John" }, { &q??uot;age", 30 } };collection.InsertOne(document);2、查詢(xún)文檔:
var filter = Builders<BsonDocument>.Filter.??Eq("name", "John&q???uot;);var documents = collect(′?`*)ion.Find(filter).ToList();3、更新文檔:
var update = Builders<BsonDocument>.Update.Set("age"(′?ω?`);, 31);collection.UpdateOne(filte??r, update);4、刪除文檔:
collection.DeleteOne(filter);5、批量操作:
插入多個(gè)文檔:??
“`csharp
var documen??ts = new List<BsonDocument>
{
new BsonDocument { { &q(′;д;`)uot;name", &qu(′-ι_-`)ot;Jane" }, { "age", 28 } },
new BsonDocument { { "name&quo??t;, "Doe" }, { "age&q(′?_?`)uot;, 35 } }
};??
collection.InsertMany(documents);
“`
刪除多??個(gè)文檔:
“`csharp
var deleteManyResult = collection.DeleteMany(filter);
“`
索引操作
1、創(chuàng )建索引:為了提高查詢(xún)性能,可以在一個(gè)或多個(gè)字段上創(chuàng )建索引。
collection.Indexes.CreateOne(Build??ers<BsonDocument>.IndexKeys.Asce(′;ω;`)nding(new string[] { "name???" }));2、刪除索引:
collection.Indexes.DropOne(Builders<BsonDocument>.IndexKeys.Ascending(new string[] { "name( ?ヮ?)&ヽ(′▽?zhuān)?ノquot; }));3??、列出所有索引:
var indexes = coll(?Д?)ection.Indexes.List();
聚合操作
Mong??oDB 提供了強大的聚合框架,用于處理復雜的數據處理任務(wù)。(′?ω?`)
var pipeline = Builders<BsonDocument>.Pipeline.AppendStages( new []{ Builders<BsonDocument>.Aggregate.Match(filter), Builders<BsonDocument>.Aggregate.Sort(Builders<BsonDocument>.Sort.Descending("age(′ω`)")), Builders<BsonDocument>.A???ggregate.Project??(Builders<BsonDocument>.Projection.Include("name"))(′▽?zhuān)?) });var results = collection.Agg??regate(pipeline).ToList();事務(wù)操作(ACID)
從 MongoDB 4.0 開(kāi)始支持多文檔事務(wù)。
using (var session = client.StartSession()){ session(O_O).StartTransaction(); try { // 執行多個(gè)操作... session.CommitTransaction()(′ω`*); } catch (Exception ex) { session.AbortTransaction(); }}以上是 C# 中使用 MongoDB .NET Driver 進(jìn)行 MongoDB 操作的基本方法,這些方法涵蓋了數據庫、集合和文檔的創(chuàng )建、讀取、更新、刪除操作(CRUD),以及索引管理和聚合操作等高級特性,MongoDB 的事務(wù)支持(?????)確保了復雜ヾ(′?`)?操作的原子性,在使用這些方法時(shí),務(wù)必注意異常處理和資源管理,以確保應用程序的穩定性和性能。
(作者:口碑營(yíng)銷(xiāo))