.NET幫助 LiteDB .NET(對開發者的解析)。 Jacob Mellor 更新:7月 28, 2025 下載 IronPDF NuGet 下載 DLL 下載 Windows 安裝程式 開始免費試用 法學碩士副本 法學碩士副本 將頁面複製為 Markdown 格式,用於 LLMs 在 ChatGPT 中打開 請向 ChatGPT 諮詢此頁面 在雙子座打開 請向 Gemini 詢問此頁面 在雙子座打開 請向 Gemini 詢問此頁面 打開困惑 向 Perplexity 詢問有關此頁面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 複製連結 電子郵件文章 LiteDB 是一個簡單、快速且輕量的嵌入式 .NET 文件資料庫。 LiteDB .NET 的靈感來自於 MongoDB 資料庫,其 API 與 MongoDB 的官方 .NET API 非常相似。 LiteDB 是一種無伺服器資料庫,適用於小型專案和行動應用程式。 本文將提供您在專案中使用 LiteDB 功能的精確說明。 我們還介紹了 IronPDF(Iron Software 製作的 .NET 函式庫,用於產生和處理 PDF)的使用方法,以及如何運用它將 LiteDB 資料庫的內容輸出為 PDF,以供檢視和分享。 LiteDB 的主要功能 1.內嵌資料庫:無需獨立伺服器。 LiteDB 在您的應用程式流程中執行。 2.單一資料檔案:您可以在單一檔案資料庫中儲存所有資料,簡化部署和備份。 3.BSON 格式: 使用 BSON 格式進行儲存,確保快速讀寫作業。 4.LINQ 支援: 完全支援 LINQ 進行查詢,讓 .NET 開發人員可以直覺地進行查詢。 5.ACID 交易: 支援 ACID 交易,確保資料完整性。 6.跨平台: 可在 Windows、Linux 和 macOS 上運作。 在 .NET 專案中設定 LiteDB 在Visual Studio中打開您的項目。 然後,在解決方案總管中,右鍵按一下專案,並選擇 "管理 NuGet 套件"。搜尋 LiteDB 並安裝,即可輕鬆地將此資料庫解決方案整合至您的專案中。 另外,您也可以使用套件管理員控制台進行安裝。 若要在 NuGet 套件管理員控制台安裝 LiteDB,請使用下列指令: Install-Package LiteDB 開始使用 LiteDB 安裝完成後,您就可以開始在應用程式中使用 LiteDB。 讓我們透過一些範例來說明它的用法。 範例 1:建立和插入資料 首先,讓我們建立一個簡單的 Product 類來表示我們的資料: public class Product { public int Id { get; set; } public string Name { get; set; } public decimal Price { get; set; } } public class Product { public int Id { get; set; } public string Name { get; set; } public decimal Price { get; set; } } IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel 接下來,我們將建立一個資料庫,並插入一些產品: using LiteDB; using System; class Program { static void Main() { // Open the database (or create it if it doesn't exist) using (var db = new LiteDatabase(@"MyData.db")) { // Get a collection (or create, if it doesn't exist) var products = db.GetCollection<Product>("products"); // Create a list of products to insert into the database var productList = new[] { new Product { Id = 201, Name = "Apple", Price = 0.99m }, new Product { Id = 202, Name = "Banana", Price = 0.59m }, new Product { Id = 203, Name = "Orange", Price = 0.79m }, new Product { Id = 204, Name = "Grape", Price = 2.99m }, new Product { Id = 205, Name = "Watermelon", Price = 4.99m } }; // Insert each product into the collection foreach (var product in productList) { products.Insert(product); } Console.WriteLine("Product inserted successfully."); } } } using LiteDB; using System; class Program { static void Main() { // Open the database (or create it if it doesn't exist) using (var db = new LiteDatabase(@"MyData.db")) { // Get a collection (or create, if it doesn't exist) var products = db.GetCollection<Product>("products"); // Create a list of products to insert into the database var productList = new[] { new Product { Id = 201, Name = "Apple", Price = 0.99m }, new Product { Id = 202, Name = "Banana", Price = 0.59m }, new Product { Id = 203, Name = "Orange", Price = 0.79m }, new Product { Id = 204, Name = "Grape", Price = 2.99m }, new Product { Id = 205, Name = "Watermelon", Price = 4.99m } }; // Insert each product into the collection foreach (var product in productList) { products.Insert(product); } Console.WriteLine("Product inserted successfully."); } } } Imports LiteDB Imports System Friend Class Program Shared Sub Main() ' Open the database (or create it if it doesn't exist) Using db = New LiteDatabase("MyData.db") ' Get a collection (or create, if it doesn't exist) Dim products = db.GetCollection(Of Product)("products") ' Create a list of products to insert into the database Dim productList = { New Product With { .Id = 201, .Name = "Apple", .Price = 0.99D }, New Product With { .Id = 202, .Name = "Banana", .Price = 0.59D }, New Product With { .Id = 203, .Name = "Orange", .Price = 0.79D }, New Product With { .Id = 204, .Name = "Grape", .Price = 2.99D }, New Product With { .Id = 205, .Name = "Watermelon", .Price = 4.99D } } ' Insert each product into the collection For Each product In productList products.Insert(product) Next product Console.WriteLine("Product inserted successfully.") End Using End Sub End Class $vbLabelText $csharpLabel 程式碼描述 該程式碼初始化與名為"MyData.db"的 LiteDB 資料庫的連線,並擷取名為"products"的集合。然後,程式會建立一個 Product 物件的陣列,該物件具有各種屬性,例如 ID、Name 和 Price。陣列中的每個產品都會插入資料庫中的 "products" 資料集中。 成功插入所有產品後,會在控制台列印一則確認訊息。 輸出為 範例:簡化使用者資料管理。 想像您正在開發一個管理使用者帳號的行動應用程式。 每個使用者都有一個個人檔案,包含他們的姓名、電子郵件地址、偏好設定 (儲存為 JSON 物件) 以及喜愛項目清單。 以下是 LiteDb.NET 如何簡化您的資料儲存: 此代碼定義了一個 User 類,用來表示使用者資料,以及一個 UserManager 類,用來管理 LiteDb.NET 資料庫中的使用者操作。 using LiteDB; using System.Collections.Generic; public class User { [BsonId] public string Id { get; set; } public string Name { get; set; } public string Email { get; set; } public Dictionary<string, string> Preferences { get; set; } public List<string> FavoriteItems { get; set; } } public class UserManager { private readonly LiteDatabase db; public UserManager(string connectionString) { db = new LiteDatabase(connectionString); } public void SaveUser(User user) { var collection = db.GetCollection<User>("users"); collection.Insert(user); } public User GetUser(string userId) { var collection = db.GetCollection<User>("users"); return collection.FindById(userId); } public void UpdateUser(User user) { var collection = db.GetCollection<User>("users"); collection.Update(user); } public void DeleteUser(string userId) { var collection = db.GetCollection<User>("users"); collection.Delete(userId); } } using LiteDB; using System.Collections.Generic; public class User { [BsonId] public string Id { get; set; } public string Name { get; set; } public string Email { get; set; } public Dictionary<string, string> Preferences { get; set; } public List<string> FavoriteItems { get; set; } } public class UserManager { private readonly LiteDatabase db; public UserManager(string connectionString) { db = new LiteDatabase(connectionString); } public void SaveUser(User user) { var collection = db.GetCollection<User>("users"); collection.Insert(user); } public User GetUser(string userId) { var collection = db.GetCollection<User>("users"); return collection.FindById(userId); } public void UpdateUser(User user) { var collection = db.GetCollection<User>("users"); collection.Update(user); } public void DeleteUser(string userId) { var collection = db.GetCollection<User>("users"); collection.Delete(userId); } } Imports LiteDB Imports System.Collections.Generic Public Class User <BsonId> Public Property Id() As String Public Property Name() As String Public Property Email() As String Public Property Preferences() As Dictionary(Of String, String) Public Property FavoriteItems() As List(Of String) End Class Public Class UserManager Private ReadOnly db As LiteDatabase Public Sub New(ByVal connectionString As String) db = New LiteDatabase(connectionString) End Sub Public Sub SaveUser(ByVal user As User) Dim collection = db.GetCollection(Of User)("users") collection.Insert(user) End Sub Public Function GetUser(ByVal userId As String) As User Dim collection = db.GetCollection(Of User)("users") Return collection.FindById(userId) End Function Public Sub UpdateUser(ByVal user As User) Dim collection = db.GetCollection(Of User)("users") collection.Update(user) End Sub Public Sub DeleteUser(ByVal userId As String) Dim collection = db.GetCollection(Of User)("users") collection.Delete(userId) End Sub End Class $vbLabelText $csharpLabel 此實作有效利用 LiteDb.NET 的功能來管理使用者資料。 User 類會儲存使用者資訊,而 UserManager 類則提供在資料庫中儲存、擷取、更新及刪除使用者的方法。 LiteDB,適用於 .NET 的內嵌式 NoSQL 資料庫。 LiteDB 非常適合沒有使用者並發需求的中小型應用程式。 舉例來說,對於想要簡單快速地儲存資料的個人主控台應用程式來說,這是非常好的選擇。 本軟體完全以 C# 開發,重量輕、佔用不到 450KB,而且不依賴外部相依性。 還有一些要點,列在他們的 GitHub 頁面: 1.無伺服器 NoSQL 文件儲存 2.簡單的 API,類似於 MongoDB 3.線程安全 4.LiteDB 完全以 C# 寫成,相容於 .NET 4.5、NETStandard 1.3/2.0,打包成單一 DLL 檔案,佔用不到 450KB。 5.ACID 與完整的交易支援 6.寫入失敗後的資料復原 (WAL 記錄檔) 7.使用 AES 加密技術進行資料檔案加密 8.您可以使用屬性或 LiteDB 提供的流暢映射器 API,輕鬆地將您的 Plain Old CLR Objects (POCO) 類別映射至 BsonDocument。 9.儲存檔案和串流資料(如 MongoDB 中的 GridFS) 10.單一資料檔案儲存(如 SQLite) 11.索引文件欄位以便快速搜尋 12.支援 LINQ 查詢 13.存取/轉換資料的類似 SQL 指令 14.LiteDB Studio - 資料存取的優美使用者介面 15.開放原始碼,人人皆可自由使用 - 包括商業用途 IronPDF 簡介:C# PDF Library IronPDF是首屈一指的 C# PDF 函式庫,有助於在 .NET 專案中無縫建立、編輯和操作PDF。 它提供了全面的 API,可執行 HTML 至 PDF 轉換、動態 PDF 生成和資料擷取等任務。 利用 .NET Chromium 引擎可確保將 HTML 精確地渲染為 PDF 檔案,滿足跨 .NET Core、.NET Standard 和 .NET Framework 的各種專案需求。 IronPDF 可確保從 HTML 內容生成 PDF 的精確性、簡易性和效率,並支援網頁、桌面和控制台應用程式。 安裝 IronPdf 函式庫 若要在專案中啟動 IronPDF,請透過 Visual Studio 中的 NuGet 套件管理員安裝該函式庫。 然後只需遵循這些簡單的步驟即可: 1.開啟 Visual Studio 並導航至"解決方案總管"。 2.用滑鼠右鍵按一下 Dependencies,然後選擇"Manage NuGet Packages"(管理 NuGet 套件)選項。 3.選擇"瀏覽"標籤並搜尋 "IronPdf"。 4.選擇 IronPdf 並點擊 "安裝"。 另外,在 Visual Studio 中,您也可以利用套件管理員控制台執行下列指令來安裝函式庫: Install-Package IronPdf IronPDF 與 LiteDB 的使用範例 以下是一個簡單的程式碼範例,說明如何使用 IronPDF 從 HTML 內容產生 PDF,並使用"using"語句確保資源處理得宜。 在此,我們結合 LiteDB 與 IronPDF 的功能,展示如何將 LiteDB 內的資料輸出為 PDF 供檢視: using LiteDB; using System; using System.Collections.Generic; using System.Linq; using System.Text; using IronPdf; class Program { static void Main() { using (var db = new LiteDatabase(@"MyData.db")) { // Retrieve the 'products' collection or create it var products = db.GetCollection<Product>("products"); // Add some initial products to the collection var productList = new[] { new Product { Id = 101, Name = "Apple", Price = 0.99m }, new Product { Id = 102, Name = "Banana", Price = 0.59m }, new Product { Id = 103, Name = "Orange", Price = 0.79m }, new Product { Id = 104, Name = "Grape", Price = 2.99m }, new Product { Id = 105, Name = "Watermelon", Price = 4.99m } }; // Insert products into the LiteDB collection foreach (var product in productList) { products.Insert(product); } Console.WriteLine("Product inserted successfully."); // Fetch all products from the database var allProducts = GetAllProducts(db); // Generate HTML content from the product list string htmlContent = GenerateHtml(allProducts); // Generate the PDF from the HTML content GeneratePDF(htmlContent); Console.WriteLine("PDF generated successfully."); } } public static List<Product> GetAllProducts(LiteDatabase db) { var products = db.GetCollection<Product>("products"); return products.FindAll().ToList(); } public static void GeneratePDF(string data) { // Set your IronPDF license key here IronPdf.License.LicenseKey = "Your-License-Key"; Console.WriteLine("PDF Generating Started..."); // Create a PDF renderer var renderer = new ChromePdfRenderer(); Console.WriteLine("PDF Processing ...."); // Render the HTML as a PDF var pdf = renderer.RenderHtmlAsPdf(data); // Save the PDF to a file string filePath = "Data.pdf"; pdf.SaveAs(filePath); Console.WriteLine($"PDF Generation Completed, File Saved as {filePath}"); } public static string GenerateHtml(List<Product> products) { // Build HTML table from product list StringBuilder htmlBuilder = new StringBuilder(); htmlBuilder.Append("<html><head><style>table { width: 100%; border-collapse: collapse; } th, td { border: 1px solid black; padding: 8px; text-align: left; }</style></head><body>"); htmlBuilder.Append("<h1>Product List</h1>"); htmlBuilder.Append("<table><tr><th>ID</th><th>Name</th><th>Price</th></tr>"); // Add each product row to the HTML table foreach (var product in products) { htmlBuilder.Append($"<tr><td>{product.Id}</td><td>{product.Name}</td><td>{product.Price:C}</td></tr>"); } htmlBuilder.Append("</table></body></html>"); return htmlBuilder.ToString(); } } using LiteDB; using System; using System.Collections.Generic; using System.Linq; using System.Text; using IronPdf; class Program { static void Main() { using (var db = new LiteDatabase(@"MyData.db")) { // Retrieve the 'products' collection or create it var products = db.GetCollection<Product>("products"); // Add some initial products to the collection var productList = new[] { new Product { Id = 101, Name = "Apple", Price = 0.99m }, new Product { Id = 102, Name = "Banana", Price = 0.59m }, new Product { Id = 103, Name = "Orange", Price = 0.79m }, new Product { Id = 104, Name = "Grape", Price = 2.99m }, new Product { Id = 105, Name = "Watermelon", Price = 4.99m } }; // Insert products into the LiteDB collection foreach (var product in productList) { products.Insert(product); } Console.WriteLine("Product inserted successfully."); // Fetch all products from the database var allProducts = GetAllProducts(db); // Generate HTML content from the product list string htmlContent = GenerateHtml(allProducts); // Generate the PDF from the HTML content GeneratePDF(htmlContent); Console.WriteLine("PDF generated successfully."); } } public static List<Product> GetAllProducts(LiteDatabase db) { var products = db.GetCollection<Product>("products"); return products.FindAll().ToList(); } public static void GeneratePDF(string data) { // Set your IronPDF license key here IronPdf.License.LicenseKey = "Your-License-Key"; Console.WriteLine("PDF Generating Started..."); // Create a PDF renderer var renderer = new ChromePdfRenderer(); Console.WriteLine("PDF Processing ...."); // Render the HTML as a PDF var pdf = renderer.RenderHtmlAsPdf(data); // Save the PDF to a file string filePath = "Data.pdf"; pdf.SaveAs(filePath); Console.WriteLine($"PDF Generation Completed, File Saved as {filePath}"); } public static string GenerateHtml(List<Product> products) { // Build HTML table from product list StringBuilder htmlBuilder = new StringBuilder(); htmlBuilder.Append("<html><head><style>table { width: 100%; border-collapse: collapse; } th, td { border: 1px solid black; padding: 8px; text-align: left; }</style></head><body>"); htmlBuilder.Append("<h1>Product List</h1>"); htmlBuilder.Append("<table><tr><th>ID</th><th>Name</th><th>Price</th></tr>"); // Add each product row to the HTML table foreach (var product in products) { htmlBuilder.Append($"<tr><td>{product.Id}</td><td>{product.Name}</td><td>{product.Price:C}</td></tr>"); } htmlBuilder.Append("</table></body></html>"); return htmlBuilder.ToString(); } } Imports LiteDB Imports System Imports System.Collections.Generic Imports System.Linq Imports System.Text Imports IronPdf Friend Class Program Shared Sub Main() Using db = New LiteDatabase("MyData.db") ' Retrieve the 'products' collection or create it Dim products = db.GetCollection(Of Product)("products") ' Add some initial products to the collection Dim productList = { New Product With { .Id = 101, .Name = "Apple", .Price = 0.99D }, New Product With { .Id = 102, .Name = "Banana", .Price = 0.59D }, New Product With { .Id = 103, .Name = "Orange", .Price = 0.79D }, New Product With { .Id = 104, .Name = "Grape", .Price = 2.99D }, New Product With { .Id = 105, .Name = "Watermelon", .Price = 4.99D } } ' Insert products into the LiteDB collection For Each product In productList products.Insert(product) Next product Console.WriteLine("Product inserted successfully.") ' Fetch all products from the database Dim allProducts = GetAllProducts(db) ' Generate HTML content from the product list Dim htmlContent As String = GenerateHtml(allProducts) ' Generate the PDF from the HTML content GeneratePDF(htmlContent) Console.WriteLine("PDF generated successfully.") End Using End Sub Public Shared Function GetAllProducts(ByVal db As LiteDatabase) As List(Of Product) Dim products = db.GetCollection(Of Product)("products") Return products.FindAll().ToList() End Function Public Shared Sub GeneratePDF(ByVal data As String) ' Set your IronPDF license key here IronPdf.License.LicenseKey = "Your-License-Key" Console.WriteLine("PDF Generating Started...") ' Create a PDF renderer Dim renderer = New ChromePdfRenderer() Console.WriteLine("PDF Processing ....") ' Render the HTML as a PDF Dim pdf = renderer.RenderHtmlAsPdf(data) ' Save the PDF to a file Dim filePath As String = "Data.pdf" pdf.SaveAs(filePath) Console.WriteLine($"PDF Generation Completed, File Saved as {filePath}") End Sub Public Shared Function GenerateHtml(ByVal products As List(Of Product)) As String ' Build HTML table from product list Dim htmlBuilder As New StringBuilder() htmlBuilder.Append("<html><head><style>table { width: 100%; border-collapse: collapse; } th, td { border: 1px solid black; padding: 8px; text-align: left; }</style></head><body>") htmlBuilder.Append("<h1>Product List</h1>") htmlBuilder.Append("<table><tr><th>ID</th><th>Name</th><th>Price</th></tr>") ' Add each product row to the HTML table For Each product In products htmlBuilder.Append($"<tr><td>{product.Id}</td><td>{product.Name}</td><td>{product.Price:C}</td></tr>") Next product htmlBuilder.Append("</table></body></html>") Return htmlBuilder.ToString() End Function End Class $vbLabelText $csharpLabel 程式碼會連線至 LiteDB 資料庫、新增產品清單、擷取所有產品,並產生產品清單的 HTML 表示內容。然後使用 IronPDF 函式庫將此 HTML 內容建立 PDF 檔案。 過程包括新增產品、擷取產品、將產品清單轉換為 HTML,以及產生 PDF 的方法。 輸出 PDF 檔案輸出 結論 LiteDB 為 C# 開發人員提供輕量、無伺服器的嵌入式文件資料庫解決方案,是小型專案與行動應用程式的理想選擇,其特色包括受 MongoDB 啟發的 API、嵌入式資料庫以及跨平台相容性。 同時,IronPDF成為首屈一指的 C# PDF 函式庫,透過 HTML 至 PDF 的轉換和 NuGet 整合,簡化 .NET 專案中的 PDF 產生和操作。 LiteDB 和 IronPDF 都為開發人員提供了有價值的工具,其中 LiteDB 在資料庫管理方面表現優異,而 IronPDF 則在 PDF 處理方面表現突出。 IronPDF 提供免費試用,以發揮其在 PDF 生成和操作方面的全部潛力。 常見問題解答 如何在 C# 中將 HTML 內容轉換為 PDF? 您可以使用 IronPDF 在 C# 中將 HTML 內容轉換為 PDF。該函式庫提供的方法如 RenderHtmlAsPdf 可將 HTML 字串轉換為 PDF 文件。 整合 LiteDB 與 .NET 專案的最佳方式是什麼? 若要將 LiteDB 與 .NET 專案整合,您可以使用 Visual Studio 中的 NuGet Package Manager 安裝 LiteDB。這可讓您直接在應用程式中使用 C# 管理資料庫。 如何從 LiteDB 資料產生 PDF? 若要從 LiteDB 資料產生 PDF,您可以使用 IronPDF。透過從 LiteDB 擷取資料,並使用 IronPDF 的功能進行渲染,您可以建立 PDF 文件,用於報告或分享用途。 我可以使用 IronPDF 在 C# 中操作現有的 PDF 檔案嗎? 是的,IronPDF 可用於處理現有的 PDF 檔案。它提供了在 C# 應用程式中編輯、合併和擷取 PDF 內容的功能。 LiteDB 可以用於行動應用程式嗎? 是的,LiteDB 因其輕量、無伺服器的特性,以及將資料儲存於單一檔案的能力,特別適合行動應用程式。 LiteDB 整合有哪些常見的疑難排解步驟? LiteDB 整合的常見疑難排解步驟包括透過 NuGet 檢查安裝是否正確、確保您的資料庫檔案路徑可被存取,以及確認您專案的 .NET 版本與 LiteDB 相容。 如何使用 LiteDB 確保資料完整性? LiteDB 支援 ACID 交易,可確保資料的完整性與可靠性。您可以使用事務來維持一致性,並處理並發的資料修改。 在 .NET 中使用 IronPDF 生成 PDF 有哪些優點? IronPDF 的優點包括 HTML 到 PDF 的簡易轉換、渲染的高準確性以及全面的 PDF 操作功能,使其成為在 .NET 應用程式中產生和處理 PDF 的理想工具。 Jacob Mellor 立即與工程團隊聊天 首席技术官 Jacob Mellor 是 Iron Software 的首席技術官,作為 C# PDF 技術的先鋒工程師。作為 Iron Software 核心代碼的原作者,他自開始以來塑造了公司產品架構,與 CEO Cameron Rimington 一起將其轉變為一家擁有超過 50 名員工的公司,為 NASA、特斯拉 和 全世界政府機構服務。Jacob 持有曼徹斯特大學土木工程一級榮譽学士工程學位(BEng) (1998-2001)。他於 1999 年在倫敦開設了他的第一家軟件公司,並於 2005 年製作了他的首個 .NET 組件,專注於解決 Microsoft 生態系統內的複雜問題。他的旗艦產品 IronPDF & Iron Suite .NET 庫在全球 NuGet 被安裝超過 3000 萬次,其基礎代碼繼續為世界各地的開發工具提供動力。擁有 25 年的商業經驗和 41 年的編碼專業知識,Jacob 仍專注於推動企業級 C#、Java 及 Python PDF 技術的創新,同時指導新一代技術領袖。 相關文章 更新12月 11, 2025 銜接 CLI 簡化與 .NET : 使用 Curl DotNet 與 IronPDF for .NET Jacob Mellor 藉由 CurlDotNet 彌補了這方面的不足,CurlDotNet 是為了讓 .NET 生態系統能熟悉 cURL 而建立的函式庫。 閱讀更多 更新9月 4, 2025 RandomNumberGenerator C# 使用RandomNumberGenerator C#類可以幫助將您的PDF生成和編輯項目提升至新水準 閱讀更多 更新9月 4, 2025 C#字符串等於(它如何對開發者起作用) 當結合使用強大的PDF庫IronPDF時,開關模式匹配可以讓您構建更智能、更清晰的邏輯來進行文檔處理 閱讀更多 RestEase C#(對開發者的解析)。FireSharp C#(對開發者如何...
更新12月 11, 2025 銜接 CLI 簡化與 .NET : 使用 Curl DotNet 與 IronPDF for .NET Jacob Mellor 藉由 CurlDotNet 彌補了這方面的不足,CurlDotNet 是為了讓 .NET 生態系統能熟悉 cURL 而建立的函式庫。 閱讀更多