LiteDB | NET NoSQL Document Store in a single data file | SQL Database library

 by   mbdavid C# Version: v5.0.16 License: MIT

kandi X-RAY | LiteDB Summary

kandi X-RAY | LiteDB Summary

LiteDB is a C# library typically used in Database, SQL Database, MongoDB applications. LiteDB has no bugs, it has no vulnerabilities, it has a Permissive License and it has medium support. You can download it from GitHub.

LiteDB is a small, fast and lightweight .NET NoSQL embedded database.

            kandi-support Support

              LiteDB has a medium active ecosystem.
              It has 7496 star(s) with 1127 fork(s). There are 289 watchers for this library.
              There were 3 major release(s) in the last 12 months.
              There are 574 open issues and 1406 have been closed. On average issues are closed in 46 days. There are 54 open pull requests and 0 closed requests.
              It has a neutral sentiment in the developer community.
              The latest version of LiteDB is v5.0.16

            kandi-Quality Quality

              LiteDB has 0 bugs and 0 code smells.

            kandi-Security Security

              LiteDB has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
              LiteDB code analysis shows 0 unresolved vulnerabilities.
              There are 0 security hotspots that need review.

            kandi-License License

              LiteDB is licensed under the MIT License. This license is Permissive.
              Permissive licenses have the least restrictions, and you can use them in most projects.

            kandi-Reuse Reuse

              LiteDB releases are available to install and integrate.
              Installation instructions are not available. Examples and code snippets are available.
              LiteDB saves you 13 person hours of effort in developing the same functionality from scratch.
              It has 38 lines of code, 0 functions and 361 files.
              It has low code complexity. Code complexity directly impacts maintainability of the code.

            Top functions reviewed by kandi - BETA

            kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.
            Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of LiteDB
            Get all kandi verified functions for this library.

            LiteDB Key Features

            No Key Features are available at this moment for LiteDB.

            LiteDB Examples and Code Snippets

            No Code Snippets are available at this moment for LiteDB.

            Community Discussions


            Separate out two identical collections except for different ids with LINQ
            Asked 2022-Mar-28 at 22:53

            I am trying to produce a method which feeds in two database (.db) files, loads them into an object which contains various string properties and a unique ID.

            The db files were created from a LiteDB instance, with a unique ID assigned under the LiteDB library method, like so:



            Answered 2022-Mar-28 at 22:53

            Except has an overload that accepts an IEqualityComparer. You can implement this interface in a class in a way that ignores the ID and then pass an instance of that class to the method. See this example if you need a reference on how to implement IEqualityComparer.



            Prevent object dispose inside using block
            Asked 2022-Mar-25 at 18:16

            I have a winform app with two forms, in the 1st form I query a liteDB and it manipulates an IEnumerable instance inside a using block with retrieved data.



            Answered 2022-Mar-25 at 18:15

            I'm not familliar with LiteDb, but I would assume it returns a proxy object for the database. So when the database is disposed, the proxy-object is no longer usable.

            The simple method to avoid the problem is to add .ToList() after the .Find(...). This will convert the proxy-list to an actual List in memory, and it can be used after the database is disposed. It is possible that the student objects inside the list are also proxies, and if that is the case this will fail.

            If that is the case you either need to find some way to make the database return real, non-proxy objects, or extend the lifetime of the database to be longer than that of your form, for example



            In LiteDB how do I Query a subdocument?
            Asked 2022-Feb-02 at 17:08

            Given the following Person Class document and its BookBag[] subdocument Array:



            Answered 2022-Feb-02 at 17:08

            Oh I just figured out my own dilemma. The correct statement is:

            col.Find("$.Bags[*].Content[*] ANY LIKE '%Apple%'");

            Please correct me if there is a better way to do this.



            Why does my Attach() method trigger a "Entity already exists" InvalidOperationException?
            Asked 2022-Jan-11 at 18:00

            This has stumped me for a few hours. I'm rewriting a Winforms desktop app to support an ASP.NET Core website. The app stores some tables locally in a LiteDB cache, and calls a "using" DBContext to get data.

            The desktop app uses a TaxAccount abstract class, which is inherited by Household and Business.

            On client search, the app calls GetAccount() to display a single user account. Since the DB can be slow, the cache is updated in the background. Here's the method.



            Answered 2022-Jan-11 at 07:14
            From the Microsoft Wiki:

            Begins tracking the given entity and entries reachable from the given entity using >the Modified state by default, but see below for cases when a different state will >be used.

            Generally, no database interaction will be performed until SaveChanges() is called.

            My guess is, that the Account is tracked until the changes are saved.



            What is the maximum size of a Litedb database and how to claim unused space?
            Asked 2021-Nov-24 at 19:39

            The limit size of all database and not only collections, and how claim unused space of delete data?

            Update: The question is about LITEDB and no SQLITE, some people don't even ready what is about.



            Answered 2021-Nov-24 at 19:39

            Read the fine manual - it says theoretically UInt.Max * page size (4096) = 16TB.



            Tendermint, GRPC and C# - Stream terminated by RST_STREAM with error code: PROTOCOL_ERROR
            Asked 2021-Sep-15 at 20:03

            I need Tendermint in one of my projects but have never used it before so I am trying to implement a very simple example from here first: but in C# (.NET 5.0).

            (Download: Minimal Example)

            I have created a simple GRPC Service trying to follow the guide as closely as possible:




            Answered 2021-Sep-14 at 12:32

            [@artur's] comment got me thinking and I have finally figured it out. Actually, even before I posted this question, my first thought was that this should indeed be http, despite the documentation saying otherwise, but no, wouldn't work. So I tried to put it in .toml file instead, I have even tried with https, but also without luck. Trying with http didn't throw any errors, unlike in the case when address was preceeded with tcp, it was just hanging on Waiting for Echo message (similarly to when pointing to the wrong address, which was weird). I've been always, eventually reverting to the tcp version. The solution was simple, remove protocol altogether...

            The documentation doesn't give any clues, so for completion, at least when working with C# (.NET 5), there are 3 things that you HAVE TO DO to make it work, all of them are trivial but you have to figure them out by yourself first:

            1. Remove protocol from your configuration when pointing to the proxy app: tcp:// should be and YES, it will throw regardless if you have protocol specified in the .toml file or as a flag in the console.
            2. The flag is --proxy_app NOT --proxy-app.
            3. Additionally to following the tutorial, you also have to EXPLICITLY override and implement Info(), Echo() and InitChain(), otherwise it will throw an Unimplemented Exception.

            Since my understanding of Tendermint is still scarce, the initial approach had some design issues. Here is the code for anybody facing similar problems:




            NoSQL embedded database with data change notification callback
            Asked 2021-Sep-11 at 16:54

            I am using SQLite embedded in a .Net Desktop application developed with WPF.

            SQLite provides a callback for any write operation performed to the database (within the same connection) ref

            In this callback, it provides the following which leads to the records being affected

            • Event (Insert /Update/Delete)
            • Table Name
            • Row Id

            I am looking for a NoSQL alternative that also provides such callback and could be embedded in a desktop application targeting .Net Framework 4.8

            I like the lightweight LiteDB but couldn't find data changes callback support



            Answered 2021-Sep-11 at 16:54

            I ended up using the Realm Database.
            Realm lets register a notification handler on a specific collection. The handler receives a description of changes since the last notification. Specifically, this description consists of three lists of indices:

            • The indices of the objects that were deleted.
            • The indices of the objects that were inserted.
            • The indices of the objects that were modified.

            Another plus point of Realm over SQLite is that these change notifications are NOT limited to changes from the same connection.



            Arbitrary/string return value from LiteDb query
            Asked 2021-Jul-06 at 08:55

            I have a LiteDb database on which I would like the user to be able to run arbitrary queries (given as a string; assume that we demand their query also always returns a string). Unfortunately I seem to be locked into always receiving the type given in the collection. For example the query



            Answered 2021-Jul-06 at 08:55

            You can use the Execute() method in your LiteDatabase instance. It basically returns you a collection of BsonValues:



            How to convert string to LiteDb.ObjectId and vise versa in c#
            Asked 2021-Feb-19 at 20:09
            public class TaskModel
               public ObjectId Id { get; set; }
               public string Name { get; set; }
            public class TaskViewModel
               public string Id { get; set; }
               public string Name { get; set; }
            public class AutoMapperProfile : Profile
                public AutoMapperProfile()
            public class TaskController : ControllerBase
                // POST: api/Task/Post
                public IActionResult Post([FromForm] TaskViewModel taskViewModel)
                    taskModel.Id = taskViewModel.Id;        //ERROR: Connot implicitly convert 'string' to 'LiteDB.ObjectId'
                    taskModel.Name =


            Answered 2021-Feb-19 at 20:09

            Try this

            convert string to ObjectId



            Reuse NLogs FileTargets FilePathLayout functionality in a custom target
            Asked 2020-Nov-12 at 06:27

            I want to create a custom FileTarget for NLog (targeting LiteDB). I can't use the existing one since it's missing some features I need and afaik it's not compatible with the latest version of LiteDB. In my custom target I would like to use the TempDir Layout Renderer. Since NLog already has this with the FilePathLayout class, I thought I can reuse it but sadly this is declared as internal. Am I missing something? Is there any other way to use this?

            My setup:

            • NLog: 4.7.2
            • NLog.Web.AspNetCore: 4.9.2
            • ASP.NET Core 3.1


            Answered 2020-Nov-12 at 06:27

            If you are writing a custom NLog target, then you can do this:


            Community Discussions, Code Snippets contain sources that include Stack Exchange Network


            No vulnerabilities reported

            Install LiteDB

            You can download it from GitHub.


            Visit the Wiki for full documentation. For simplified chinese version, check here.
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
          • HTTPS


          • CLI

            gh repo clone mbdavid/LiteDB

          • sshUrl


          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link