@mbdavid mbdavid released this May 28, 2018 · 14 commits to master since this release

Assets 5
  • Added IncludeAll method
  • Added LENGTH method expression

@mbdavid mbdavid released this Mar 11, 2018 · 20 commits to master since this release

Assets 4

Bugfix

  • Fix DateTime UTC in index Min/Max
  • Initial size with encryption #929
  • Better message when using OSX about file lock
  • Remove System.Threading reference for netstandard
  • Fix collection sequence in shrink #899
  • Fix shrink lock page #892
  • Fix NextIndex dictionary

New

  • Add "flush" option in connection string (support direct in disk flush after write operation)

@mbdavid mbdavid released this Jan 8, 2018 · 39 commits to master since this release

Assets 4

New

  • New expression ITEMS method (convert array into IEnumerable)
  • New expression ALL method (return true only if all conditions are true) - ALL($.Items[*].Price > 0) = true

Bugfix

  • BSON deserialization bug on hi concurrency access
  • Performance issue about flush on HDD disk #836
  • Remove missing reference in Include #831

@mbdavid mbdavid released this Dec 17, 2017 · 56 commits to master since this release

Assets 4

News 4.1

  • Add UTC deserialization support (use utc=true on connection string)
  • New FindSort operation with paging (experimental)
  • New TempDiskService for temporary database
  • New shell detail help help <command>
  • Bugfix initial data-size
  • Bugfix logger ctor #776 @parabola949
  • Expressions:
    • Add support to Document syntax: new BsonExpression("{_id: 1, name: 'John'}")
    • Add support to Array syntax: new BsonExpression("[1, 'two', false]")
    • Add document function: EXTEND()
    • Add cast functions: INT(), DOUBLE(), STRING(), DATE() ...
    • Add date functions: DATEADD(), DATEDIFF(), YEAR(), MONTH(), DAY()

@mbdavid mbdavid released this Oct 18, 2017 · 107 commits to master since this release

Assets 4

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)
Pre-release

@mbdavid mbdavid released this Oct 2, 2017 · 125 commits to master since this release

Assets 4
  • Add KEYS, MOD expression function
  • Add support for ( and ) inside expressions
  • Improve expression reader/parser
  • Bugfix: return _id when insert
  • Minor bugfixes
Pre-release

@mbdavid mbdavid released this Aug 28, 2017 · 143 commits to master since this release

Assets 5

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)

New Features

  • New Expressions/Path
  • New shell command: UPDATE fields only
  • New shell command: SELECT with transform
  • Remove physical journal file (store journal pages after file ends)
  • Add auto-id in engine level with pre-defined common types
  • Add collection sequence (ulong) to use in engine level auto-id
  • Auto-id default true to _id with BsonType = ObjectId, Guid, DateTime, Int32 or Int64
  • Add include in engine/document level with any level
  • Compiled in NET35 for Unity3D support, NET40 and NETSTANDARD 1.3
  • Implement FilterDocument option in all query implementations (full scan document)
  • In Query.And use only one index side with full scan on other
  • Print query execution plan in Query.ToString() (Seek([Age] > 10) and Filter([Name] startsWith "John"))
  • Convert Query.And to Query.Between when possible
  • Add support to Query.Between open/close interval
  • QueryLinq for non resolved linq expression on visitor col.Find(x => x.Id < 10 && x.Name.Length > 10)
  • Support index creation with expressions
  • Support expression on full searchs
  • Better shell error messages in parser with position in error
  • Fix simple lock control (multi-read/single write) in thread/process. Removed reserved lock state
  • Upgrade to VS2017

Bugfixes

  • Upload from local disk on storage
  • DateTime.Now indexed date (milliseconds problem)
  • When query using > or < must use same BsonType (do not returns null values)
  • Remove return Duplicate values in MultiKey indexes