Changelog History
Page 2
-
v5.0.0-alpha2 Changes
September 24, 2019π New
- β Remove LiteDB.Studio (moved to another repo)
- β Add back LiteDB.Shell (netcore tool) for SQL commands
- Implement
Shrink
- Create
MAP
andFILTER
expression methods:MAP(children => age)
FILTER(items => price > 100)
- Add expression methods:
REMOVE_KEYS
,OID_CREATIONDATE
,TO_LOCAL
,TO_UTC
,DISTINCT
,UNION
,EXCEPT
,TOP
- β Add support for custom ctor in classes to
BsonDocument
mapperpublic People(string name) { this.Name = name; }
- β Remove LINQ
GroupBy<T, K>
(must useBsonExpression
) - β Add trasaction monitor to manage how memory LiteDB pages will use in transactions
- Implement first
SharedConnection
to keep database closed after each command (can be used for multiple processes in same machine) - π BugFixes (see commit log)
-
v5.0.0-alpha Changes
August 04, 2019π Here is new alpha version of LiteDB v5. It's alpha version, so is not ready for production! API may change, data file can also change before final release. Please, you, test and give any feedback on issues
π New major version
- π² Complete new engine - WAL (Write Ahead Log)
- MultiVersion Concurrency Control (Snapshots & Checkpoint)
- π Full transaction support
- π Multi readers support, no lock
- π Write lock per collection
- Up to 32 indexes per collection
- π New
FileStorage
with customId
type - π New
BsonExpressions
: transform, filter, map, reduce, .. - π New Query Pipe inside engine
- β¬οΈ Upgrade datafile from LiteDB v4 (use
upgrade=true
in connection string) - π New Linq visitor (with support more expressions)
- π New fluent
Query
- And more than one year of hard working!!
π SQL Support
- π New SQL language support - very similar with ANSI SQL
- β‘οΈ Select, Insert, Update, Delete, Create Index, Drop Index, Drop Collection
- π Support GroupBy, Having, Limit, Offset, OrderBy, Includes, ...
- System virtual collection (get information about database)
- π Support to system function (import/export CSV/JSON)
LiteDB Studio
- π New UI for Windows
- Multi tab, multi thread, multi transactions
- π New LiteDB.Studio (for Windows) with SQL support
Know issues
- Missing
Shrink
,UserVersion
,PredicateBuilder
- π Only single process (with multi thread support) - no multi process yet
-
v4.1.4 Changes
June 20, 2018- π Fix
IncludeAll
missing method
- π Fix
-
v4.1.3 Changes
May 28, 2018- β Added
IncludeAll
method - β Added
LENGTH
method expression
- β Added
-
v4.1.2 Changes
March 11, 2018π 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)
-
v4.1.1 Changes
January 08, 2018π New
- π New expression
ITEMS
method (convert array into IEnumerable) - π New expression
ALL
method (returntrue
only if all conditions aretrue
) -ALL($.Items[*].Price > 0) = true
π Bugfix
- π New expression
-
v4.1.0 Changes
December 17, 2017π 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()
- Add support to
-
v4.0.0 Changes
October 18, 2017π 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 includescol.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
toQuery.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)
- β Add support to NETStandard 2.0 (with support to
-
v4.0.0-beta2 Changes
October 02, 2017- β Add
KEYS
,MOD
expression function - β Add support for
(
and)
inside expressions - π Improve expression reader/parser
- π Bugfix: return
_id
when insert - π Minor bugfixes
- β Add
-
v4.0.0-beta1 Changes
August 28, 2017Break 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 - 0οΈβ£ Auto-id default true to
_id
withBsonType
=ObjectId
,Guid
,DateTime
,Int32
orInt64
- β 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
toQuery.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