Where communities thrive

  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
Repo info
  • Dec 01 23:12
    arcanelab edited #2258
  • Dec 01 21:16
    jackmcbrezel commented #2255
  • Dec 01 21:15
    jackmcbrezel commented #2255
  • Dec 01 20:56
    arcanelab opened #2258
  • Dec 01 20:02
    ProKn1fe commented #2257
  • Dec 01 19:27
    ProKn1fe commented #2257
  • Dec 01 19:27
    ProKn1fe commented #2257
  • Dec 01 19:18
    ProKn1fe commented #2256
  • Dec 01 19:05
    ProKn1fe commented #2255
  • Dec 01 15:48
    arcanelab edited #2257
  • Dec 01 15:39
    arcanelab opened #2257
  • Nov 30 20:34
    dangergrrl opened #2256
  • Nov 30 20:17
    ProKn1fe commented #2254
  • Nov 30 15:50
    jackmcbrezel labeled #2255
  • Nov 30 15:50
    jackmcbrezel opened #2255
  • Nov 30 01:13
    xmlanjia commented #2254
  • Nov 29 18:55
    ProKn1fe commented #2254
  • Nov 29 15:51
    xmlanjia opened #2254
  • Nov 29 15:51
    xmlanjia labeled #2254
  • Nov 29 14:07
    ProKn1fe commented #2253
Has anyone here used LiteDb for application state management?

Hello! I need help in updating a list in my User table:
i have a Table called User. The User has a List with Devices.
Now i changed my Device assembly and namespace and now i need to change the Type (_type) of my Devices.
I tried so many approaches but nothing did work and im out of ideas. The last command i tried was:
'''UPDATE User SET Devices = Devices[]._type = 'DeviceSet.Mobile.Models.BleDevice, DeviceSet' ''' which gave me following Error:
Left expression `MAP($.Devices[
]=>@._type)` returns more than one result. Try use ANY or ALL before operant.

I'm looking forward to any help!

JeeShen Lee

Hello, I recently changed a field's data type from int to string.

After the changes, I'm getting "Casting Exception" when I try to read the records.

I did some reading and notice that I need to manage the new schema using DatabaseVersion. In order to change the schema, I need to perform the migration to the existing database. Is this the right way to do? Any other idea?

JeeShen Lee

I went ahead to implement the migration to change the data type by resaving the BSONValue.

After that, I increment the database version to 1.

Now, how do I mark a newly created database to version 1 so it won't have to go through the migration (migration is meant for existing database).

Rafał Piotrowski
Hi, can I force litedb to flush data to disk? My problem is that after update and shortly after when I read the data is not reflecting the changes made by update!
Rafał Piotrowski
BTW. I am calling Checkpoint and I have also set CheckpointSize to 0 to manually call Checkpoint.
ajay kishore
I have dotnetnuke db file, can i open that in litedb. how to view other db files in litedb with different extensions(not the .db)
Tim Moore
Hi, what does this error mean? Google turned up only one result and it's in Chinese!
      System.Exception: LiteDB ENSURE: get only index below highest index
         at LiteDB.Constants.ENSURE(Boolean conditional, String message)
         at LiteDB.Engine.BasePage.Get(Byte index)
         at LiteDB.Engine.IndexService.DeleteAll(PageAddress pkAddress)
         at LiteDB.Engine.LiteEngine.<>c__DisplayClass3_0.<Delete>b__0(TransactionService transaction)
         at LiteDB.Engine.LiteEngine.AutoTransaction[T](Func`2 fn)
         at LiteDB.Engine.LiteEngine.Delete(String collection, IEnumerable`1 ids)
         at LiteDB.SharedEngine.Delete(String collection, IEnumerable`1 ids)
         at LiteDB.LiteCollection`1.Delete(BsonValue id)
Tim Moore

I know LiteDB is probably not ideal for this, but is there any advice on deployment on a active/standby cluster?

Due to customer requirements project I'm working on has been deployed this way and the .db files are replicated to the standby. Failover occurs and in theory it picks up on the standby.

It appears to work in testing but there's concern that it may not be robust and have reports of some issues that haven't been reproduced (and no errors logged). May be totally unrelated, but want to check if anyone has deployed on such a cluster set up.

Long term the aim is to implement Mongo DB or similar for this.

Alex Sinitsky
Hey guys, getting an exception while trying to do thebase.Insert(rec) - "this page should be in slot #0". Interestingly, the exception isn't thrown in debug, and Insert actually works correctly. I've checked why does it throw and found out the slot is 1 instead of 0, thus ENSURE throws an exception. Does anybody know what might be the issue here?
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?