Where communities thrive

  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
Repo info
  • Jan 25 15:50
    mathis1337 edited #2280
  • Jan 25 15:50
    mathis1337 edited #2280
  • Jan 25 15:48
    mathis1337 opened #2280
  • Jan 24 13:53
    LukasKuchta commented #2276
  • Jan 24 04:05
    mathis1337 commented #2278
  • Jan 24 04:02
    mathis1337 commented #2278
  • Jan 24 04:02
    mathis1337 commented #2278
  • Jan 24 02:33
    mathis1337 commented #2278
  • Jan 24 01:04
    mathis1337 edited #2278
  • Jan 24 01:03
    mathis1337 edited #2278
  • Jan 24 01:03
    mathis1337 edited #2278
  • Jan 23 22:25
    mathis1337 edited #2278
  • Jan 23 22:24
    mathis1337 labeled #2278
  • Jan 23 22:24
    mathis1337 opened #2278
  • Jan 20 13:24
    jnothbauer labeled #2277
  • Jan 20 13:24
    jnothbauer opened #2277
  • Jan 19 16:09
    LukasKuchta commented #2276
  • Jan 18 13:03
    LukasKuchta opened #2276
  • Jan 18 13:03
    LukasKuchta labeled #2276
  • Jan 18 00:44
    stephenmcd1 labeled #2275
Paramjit Singh
Hello all
I want to save ordered items by date in LiteDb like this
IEnumerable<Destination> orderedList = destinations.OrderBy(d => d.TripStartDate);
But when I access the Destinations in the app it is not in correct order by StartDate
Am I doing something wrong. Please help
Matthew Oh
1 reply
Shahab Ouraie

Hello everyone @/all
I'm new to whole this, so plz correct me if I'm wrong:
1- A poco class when inserts into DB known as a Document;
2- If a poco class contains an object property of another poco class, this is a SubDocument;

1- Does $ symbol refers to the main poco class/Document when used in LINQ-expressions?
2- Whats different between SELECT $ from students and SELECT * from students (Basically * and $)?
3- Whats is and the difference between Collection and Document ?

tnx in advance; Couldnt find out through docs...

ariana strangelove
Hi :)
oh nvm, i can read the source
Scott Wolf
Is there any method to run a repair on a database. I am getting the following exception when trying to open a file.
System.Exception: LiteDB ENSURE: ReadFull must read PAGE_SIZE bytes [4096]
   at LiteDB.Constants.ENSURE(Boolean conditional, String message)
   at LiteDB.Engine.DiskService.ReadFull(FileOrigin origin)+MoveNext()
   at LiteDB.Engine.WalIndexService.<>c__DisplayClass19_0.<<CheckpointInternal>g__source|0>d.MoveNext()
   at LiteDB.Engine.DiskService.Write(IEnumerable`1 pages, FileOrigin origin)
   at LiteDB.Engine.WalIndexService.CheckpointInternal()
   at LiteDB.Engine.WalIndexService.TryCheckpoint()
   at LiteDB.Engine.LiteEngine.Dispose(Boolean disposing)
   at LiteDB.Engine.LiteEngine..ctor(EngineSettings settings)
Ilya Popov
@wolfson292 LiteDB Studio?
Hi guys, could you help. How can i do postgres-like "DO NOTHING" for Upsert on needed property?
S├ębastien Duterte
Hello guys !
I need some help with an error with a "LiteDB ENSURE exception : page type must be collection page".
Do you know how this error occurs ? Is it possible to get this error when the database is killed brutally (without dispose, for exemple) ?

I am looking at integrating this with an existing project, so we already have data models etc but we already have a Guid based Id field, is there a way to hint/tell Lite DB to just use that field to be the id .

Not fussed if it duplicates the custom Id into _id or some other mechanism, I just need to be able to query on the Guid not the BsonValue based Id, although I appreciate I may externally use a Guid in my data access layer but internally it may have to just make a BsonValue on the fly or something...

Anyway any advice on this would be great as I assume its a common use case, just couildnt find much in the docs around it


Also I have a query around dynamic style types, i.e I have a class with an interface property so when deserializing its not clear what C# type it is.

When I was using JSON.Net I had a custom JsonConverter which handled that part, but im not entirely sure here how to mimic that with LiteDB, historically all the data used to be pumped out to raw json files using JSON.Net so generally it seems a good fit for just moving each json file to be its own collection, but not quite sure how to work around that bit

I have put a question about this on stack overflow so if anyone does read this and knows please put the answer in there https://stackoverflow.com/questions/73611168/any-way-to-mimic-jsonconverter-style-serializing-deserializing-of-complex-object
For now im just going to introduce an intermediate JSON layer in our repositories which converts them into BsonDocuments and hope for the best :D

Dim Result = m_Col.Find(Function(x) x.Name.StartsWith("F")).ToList
--> If an entry starting with "F" is found, I get this exception:

System.NullReferenceException: "The object reference was not set to an object instance.

--> If no entry starting with "F" is found, I get an empty list "Result" (LiteDB.LiteCollection(Of T)

Where is my problem? Thanks for quick help!

Sorry: list "Result" (List(Of T))
are all the types correct in all the bits you use i.e all Generics match
and also are all the bits you expect to be populated/deserialized on the object populated in the collection store?
I have found the cause: I had "only" a separate constructor with special parameters in the class and removed the standard constructor. Thanks for all the help.
Kevin Vuilleumier
Hello, thank you to all the team for this great project! I have two questions that I can't find the answer in the document, in the source code or in the issues...
  1. How to write a SQL query with parameters in LiteDB?
    I tried query.Where($"Name = @p0", "Arthur");, but it doesn't work. The parameter doesn't seem to be used.
    However, it works well by doing query.Where(x => x.Name == "Arthur");
Kevin Vuilleumier
  1. There is Query.Contains() but not Query.DoesntContains (or equivalent). How can we implement the expression "does not contain" with the Query class?
Hi Guys i am completly new to litedb so my question is: Is there any compressing algo for Tabledata like huffman or on file basis ?
Sam Worth
@mbdavid - how can I contact you directly?
Josh Burris
Is liteDB still being supported? See a number of PRs havent been merged in quite some time...
There was a new release the other day: https://www.nuget.org/packages/LiteDB/
@mbdavid i would like to help you out with your questions regarding use of litedb but i can't answer them because none of the answers apply...
Ben Woodford

Yooo, we're using LiteDB for a long-running Windows Service and having a couple of issues. It seems sometimes our customers won't clean-shutdown their stuff which isn't really avoidable... we've had someone end up with a full drive so the log wasn't committing I guess, but they get this on restarting our service now (we run Rebuild to check for ENSURE errors, as we had someone stuff without the ability to run our application for no reason before as Inserts would fail... so if Rebuild fails we pull our data out and remake the DB entirely)

Rebuild operation requires no log file - run Checkpoint before continue

I've got a copy of their DB, but even running Checkpoint before Rebuild doesn't seem to actually achieve anything here? It still shows that error

I like LiteDB, thank you!
I use it in one of my public repos, I think I weighted it against sqlite but I found LiteDB to be a lot more convenient.