Install from PyPi, as ravendb.
pip install ravendb
Python client API (v7.0) for RavenDB , a NoSQL document database.
Type-hinted entire project and API results - using the API is now much more comfortable with IntelliSense
- Click here to view all Releases and Changelog.
- Changes available in the releases section.
- Bulk insert dependencies bugfix
- Counters
- Counters indexes
- New feature - Bulk insert
- Bugfixes - Cluster-wide operations (here)
- Bugfixes - Serialization while loading/querying (here)
-
Subscriptions
- Document streams
- Secured subscriptions
-
Querying
- Major bugfixes
- Spatial querying and indexing
- Highlighting fixes
- Custom document parsers & loaders
-
New features
- Conditional Load
- SelectFields & Facets
- Projections
- MoreLikeThis
- Suggestions
-
Improvements
- Compare exchange
- Querying
- DocumentConventions
- Patching
- Spatial queries
- Aggregations
-
Lazy Operations
- Lazy loading
- Lazy querying
- Lazy compare exchange operations
-
Structure
- Important classes are now available to import from the top level
ravendb
module
- Important classes are now available to import from the top level
...and many bugfixes
-
Querying
- Simpler, well type hinted querying
- Group by, aggregations
- Spatial querying
- Boost, fuzzy, proximity
- Subclauses support
-
Static Indexes
- Store fields, index fields, pick analyzers & more using
AbstractIndexCreationTask
- Full indexes CRUD
- Index related commands (priority, erros, start/stop, pause, lock)
- Additional assemblies, map-reduce, index query with results "of_type"
- Store fields, index fields, pick analyzers & more using
-
CRUD
- Type hints for results and includes
- Support for dataclasses
-
Attachments
- New attachments API
- Better type hints
-
HTTPS
- Support for https connection
- Certificates CRUD operations
-
Lazy load
- New feature
-
Cluster Transactions, Compare Exchange
- New feature
- Replication & ETL Commands
- Streaming (#168)
from ravendb import DocumentStore
URLS = ["https://raven.server.url"]
DB_NAME = "SecuredDemo"
CERT_PATH = "path\\to\\cert.pem"
class User:
def __init__(self, name: str, tag: str):
self.name = name
self.tag = tag
store = DocumentStore(URLS, DB_NAME)
store.certificate_pem_path = CERT_PATH
store.initialize()
user = User("Gracjan", "Admin")
with store.open_session() as session:
session.store(user, "users/1")
session.save_changes()
with store.open_session() as session:
user = session.load("users/1", User)
assert user.name == "Gracjan"
assert user.tag == "Admin"
https://ravendb.net/docs/article-page/5.3/python
https://github.com/ravendb/ravendb-python-client