BitBadger.Npgsql.Documents
View GitHub Repo
THIS PROJECT HAS BEEN REPLACED
BitBadger.Documents has replaced this PostgreSQL-specific project. The new project provides similar behavior, but for both PostgreSQL and SQLite. It made sense to remove the database name from the project, as people would not likely be searching for SQLite document support in a PostgreSQL library! Its initial version of 3 is due to its lineage from this project, and it continues.
Differences when upgrading to BitBadger.Documents
Namespaces
The main code-change-requiring difference is the namespace of the library.
// C# - Before using BitBadger.Npgsql.Documents; // After using BitBadger.Documents.Postgres;
// F# - Before open BitBadger.Npgsql.FSharp.Documents // After open BitBadger.Documents.Postgres
Configuration options and underlying data structures are the same between v2 of this library and v3 of the new one. If you are still using v1 of this library, you will need to migrate your data to the v2 structure.
Field-Level Accesses and Indexes Changes
SQLite implemented the same JSON field access as PostgreSQL; once it was implemented for the former, we can now use it in the latter. This brings some new options for accessing data.
- Creating a document index now uses
ensureDocumentIndex
rather than simplyensureIndex
; it still supports theFull
andOptimized
options. - A new
ensureFieldIndex
function/method allows a traditional index to be created based on one or more fields from the JSON document. - Any options that had a
ByContains
orByJsonPath
now also have aByField
option, and a new set ofField.[op]
methods/functions provide comparison operations against that field. RemoveFields
can be used to remove one or more fields from a JSON document.
Other Changes
There were a few places where functions were moved, specifically around the queries and execution of table and index definitions. If you find others that this document missed, please reach out and let us know.