1 安裝MongoDB.Driver
2 創建數據庫鏈接mongodb
#mongodb://127.0.0.1:27017 MongoClient client = new MongoClient(「鏈接字符串」);
3 獲取數據庫數據庫
var database = client.GetDatabase("數據庫");
4 獲取數據集 Collection數組
#若是數據是預先定義好的能夠在<輸入數據的類型> ,若是是沒有定義好的,可使用BsonDocument類型,BsonDocument表示沒有預約於的模式。 var collection = database.GetCollection<BsonDocument>(「集合」);
5 插入數據異步
#InsertOne(同步插入): collection.InsertOne(document); #InsertOneAsync(異步插入): await collection.InsertOneAsync(document); #若是想要插入多個數據,可使用 InsertMany 或 InsertManyAsync 方法。
6 查詢數據ide
#查找集合中的第一條數據 var document = collection.Find(new BsonDocument()).FirstOrDefault(); or var filter = Builders<‘實體‘>.Filter.Empty; var document = collection.Find<‘實體’>(filter).FirstOrDefault(); #查詢數數據集中的全部數據 var documents = collection.Find(new BsonDocument()).ToList(); or var filter = Builders<‘實體‘>.Filter.Empty; var document = collection.Find<‘實體’>(filter).ToList(); #用過濾器篩選獲取單個文檔 var filterBuilder = Builders<實體>.Filter;
7 更新文檔ui
#. Update.Set() 配合過濾器修改 var filter = Builders<MyData>.Filter.Where(s => s.Name == "AESCR") & Builders<MyData>.Filter.Where(d => d.BooksArray.Any(x=>x.XXBooks.Any(y=>y.bookname=="netcore"))); var update = Builders<MyData>.Update.Set(d => d.BooksArray[0].XXBooks[0].bookname, "NetCore"); collection.UpdateOne(filter, update);
8 查詢code
var result = collection.AsQueryable() .Where(s => s.Name == "AESCR") .SelectMany(s => s.BooksArray) .Where(r => r.bookname == "C#"); var page = await _sensorNodes.AsQueryable() // 查找對應的sensorNode .Where(s => s.Id == _sensorNodeId) // 選擇Records內嵌數組 .SelectMany(s => s.Records) // 根據記錄時間排序 .OrderBy(r => r.RecorDateTime) // 跳過 index - 1頁數據 .Skip((index - 1) * size) // 選取一頁數據 .Take(size) // 轉換爲集合 .ToListAsync();
9 刪除排序
# Update.PullFilter()方法 刪除過濾器刪除元素 var update = Builders<SensorNode>.Update.PullFilter(s => s.Records, r => r.Data == 339119843.0); await _sensorNodes.UpdateOneAsync(s => s.Id == _sensorNodeId, update);