Below you will find pages that utilize the taxonomy term “LiteDB”
Posts
LiteDB - FileStorage
為了控制記憶體的使用量,LiteDB 限制資料的存放量為 1 MB,1 MB 對於一般的資料而言是已經足夠了,但是對於二進制檔案來說就不怎麼足夠,所以 LiteDB 提供 FileStorage 用以存放二進制檔案。
FileStorage 支援以下方法:
Method Description Upload Send file or stream to database. Can be used with file or Stream. If file already exists, file content is overwritten. Download Get your file from database and copy to Stream parameter Delete Delete a file reference and all data chunks Find Find one or many files in _files collection. Returns LiteFileInfo class, that can be download data after.
read morePosts
LiteDB - Query data
要取得 LiteDB 內的資料,首先需先將 LiteDB 開啟,取得對應的 Collection,調用 Collecion.FindAll 即可取得 Collection 內所有的資料。
... using (var db = new LiteDatabase(dbFile)) { var collection = db.GetCollection<T>(collectionName); ... var collectionItems = collection.FindAll(); ... } using System; namespace LiteDB.Demo8 { class Program { static void Main(string[] args) { using (var db = new LiteDatabase("Person.db")) { var persons = db.GetCollection<Person>("persons"); foreach (var person in persons.FindAll()) { Console.WriteLine(person.NickName); } } } } public class Person { public int ID { get; set; } public String Name { get; set; } public String NickName { get; set; } } } 要找尋滿足特定條件的資料的話,可以調用 Collection.
read morePosts
LiteDB - Update data
要將 LiteDB 內的資料更新,需先將 LiteDB 開啟,取得 Collection,取得 Collection 內的元素,更新元素的屬性值後,再用 Collection.Update 將資料更新回 LiteDB 即可。
… using (var db = new LiteDatabase(dbFile)) { var collection = db.GetCollection<T>(collectionName); ... collectionItem.Property = newValue; collection.Update(collectionItem); } 像是下面這個範例就會將資料寫入,將塞入的資料做個變更。
using System; namespace LiteDB.Demo2 { class Program { static void Main(string[] args) { using (var db = new LiteDatabase("Person.db")) { var persons = db.GetCollection<Person>("persons"); var firstPerson = collection.FindById(1); firstPerson.Name = "Larry Nung"; firstPerson.NickName = "Larry"; persons.Update(firstPerson); } } } public class Person { public int ID { get; set; } public String Name { get; set; } public String NickName { get; set; } } } 若是要更新為全新的資料,也可以建立個資料物件指定 ID 將之替換。
read morePosts
LiteDB - Insert data
要將資料塞入 LiteDB,需先準備一個用來存放資料的 Model,該 Model 跟一般的 Model 沒什麼太大的不同,不需要特別加掛 Attribute,只需要為 Model 加上一個 ID 的數值屬性,讓 LiteDB 用以識別資料。
public class MyModel { public int ID { get; set; } ... } 再來準備要塞入的資料,ID 值不用填,LiteDB 會自行填入。
var collectionItem = new T() { ... }; 最後將 LiteDB 開啟,取得對應的 Collection,用 Collection.Insert 將資料塞入即可。
… using (var db = new LiteDatabase(dbFile)) { var collection = db.GetCollection<T>(collectionName); ... collection.Insert(collectionItem); } 程式撰寫起來會像下面這樣:
using System; namespace LiteDB.Demo1 { class Program { static void Main(string[] args) { using (var db = new LiteDatabase("Person.
read morePosts
LiteDB - Create and open DB
LiteDB 使用上跟一般資料庫一樣需要先建立資料庫操作物件,帶入指定的資料庫檔案位置建立出 LiteDatabase 物件實體即可。
… using (var db = new LiteDatabase(dbFile)) { ... } LiteDatabase 物件實體建立後,即可針對 LiteDatabase 物件實體進行資料庫的操作,資料庫的連線 LiteDB 會幫我們開啟,不需自行開啟。若指定的資料庫檔案位置不存在資料庫檔案,LiteDB 會自動建立指定的資料庫檔案。
除了檔案形式的資料庫外,LiteDB 也允許我們使用記憶體形式的資料庫,只要建立 MemoryStream 帶入建立 LiteDatabase 的物件實體即可。
… using (var ms = new MemoryStream(buffer)) using (var db = new LiteDatabase(ms)) { ... } 這樣資料庫就會存在於記憶體中。在需要存放些資料在記憶體中的某些情境下,就可以評估使用 In-Memory 的 LiteDB。
read morePosts
LiteDB - A .NET NoSQL Document Store in a single data file
LiteDB 是一用 C# 寫的 .NET NoSQL 免費開源資料庫。
具備有以下特點:
Lightweight Fast Thread safe Process safe Portable UWP and Xamarin iOS/Android ACID transaction Recovery data in writing failure (journal mode) Map your POCO class to BsonDocument Fluent API for custom mapping Cross collections references (DbRef) Store files and stream data (like GridFS in MongoDB) LINQ support FREE for everyone - including commercial use Shell command line Datafile encryption using DES (AES) cryptography LiteDB 有點像是 MongoDB 與 SQLite 的混合體,操作與使用上跟 MongoDB 相似,但又跟 SQLite 一樣是 Standalone 的資料庫,不像 MongoDB 需要架設服務,只需引用 250 KB 左右的組件即可直接使用。
read more