Skip to content

v4.0 release

Compare
Choose a tag to compare
@mbdavid mbdavid released this 18 Oct 17:09
· 1634 commits to master since this release

LiteDB v4 released

New Features

  • Add support to NETStandard 2.0 (with support to Shared mode)
  • New document Expression parser/executor - see Expression Wiki
  • Support index creation with expressions
col.EnsureIndex(x => x.Name, "LOWER($.Name)");
col.EnsureIndex("GrandTotal", "SUM($.Items[*].Qtd * $.Items[*].Price)");
  • Query with Include it´s supported in Engine level with ANY nested includes
col.Include(x => x.Users)
   .Include(x => x.Users[0].Address)
   .Include(x => x.Users[0].Address.City)
   .Find(...)
  • Support complex Linq queries using LinqQuery compiler (works as linq to object)
    • col.Find(x => x.Name == "John" && x.Items.Length.ToString().EndsWith == "0")
  • Better execution plan (with debug info) in multi query statements
  • No more external journal file - use same datafile to store temporary data
  • Fixed concurrency problems (keeps thread/process safe)
  • Convert Query.And to Query.Between when possible
  • Add support to Query.Between open/close interval
  • Same datafile from LiteDB v3 (no upgrade needed)

Shell

  • New UPDATE/SELECT statements in shell
  • Shell commands parser/executor are back into LiteDB.dll
  • Better shell error messages in parser with position in error
  • Print query execution plan in debug
    (Seek([Age] > 10) and Filter([Name] startsWith "John"))
    (preparing to new visual LiteDB database management tool)

Break changes

  • Remove transactions
  • Remove auto-id register function for custom type
  • Remove index definitions on mapper (fluent/attribute)
  • Remove auto create index on query execution. If the index is not found do full scan search (use EnsureIndex on initialize database)