上一篇文章 第一次 使用 C# 操控 MongoDB 就上手 (查詢資料) 我們提到幾種比較常見的搜尋
今天我們要討論一下有關於刪除..
其實在 SQL 操作中,刪除就技術上來說本來就不難,只是要刪的乾淨還有與其他物件關聯性都要掌握好
其實就技術上來說並不困難,所以下面就簡單分為兩種..
根據系統 Id 刪除一筆資料
根據系統 Id 刪除一筆資料
看一下目前資料:
我要刪除的那筆資料 _id 為 5011175615d1b20bd8448623
這時候我就指定此 _id 為 5011175615d1b20bd8448623 將他刪除
C# Code :
//MongoDB 的 Conection URI
var connectionString = "mongodb://user1:[email protected]:35167/sampledb?safe=true";
// 建立連線
var server = MongoServer.Create(connectionString);
// 取得指定 Database
var db = server.GetDatabase("sampledb");
// 指定操作 Collection 為 Users
MongoCollection<User> coll = db.GetCollection<User>("Users");
// 搜尋條件為 _id = 5011175615d1b20bd8448623
var query = Query.EQ("_id", new BsonObjectId("5011175615d1b20bd8448623"));
// 將此搜尋條件的資料進行刪除
var res = coll.Remove(query);
// DocumentsAffected 的目的在印出影響的資料筆數
Response.Write(res.DocumentsAffected);
結果: 1
如果再按一次 因為沒有影響到筆數 所以結果: 0
其實就三個動作 1. 建立 Query 條件 2. 執行刪除 3. 檢查影響資料
請注意: connection string 記得開為 safe=true
請注意:
如果當初你在 MongoLab 建立的是 2.2 版的..
可能會出現 .
如果你不是用最近版本的就可以正常執行…
當然,你可以暫時用 try catch 來解決這問題,他會正常刪除請放心,網路上看文件看起來是 Driver 還沒有修改正常..
不過這不影響,如果怕有問題,當初建立就先不要勾選 2.2 的..