LiteDB v4.0.0 Release Notes

Release Date: 2017-10-18 // over 6 years ago
  • πŸš€ 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)