# NoSQL Connectors

> Work with modern, flexible NoSQL databases for document-oriented and multi-model data validation.

## Overview

NoSQL databases provide flexible schemas and distributed architectures ideal for modern applications. Data Testing supports leading NoSQL platforms for comprehensive data validation and comparison workflows.

{% hint style="info" %}
NoSQL connectors support native query languages, document filtering, and advanced aggregation capabilities for flexible validation.
{% endhint %}

***

## Available NoSQL Connectors

{% tabs %}
{% tab title="⭐ Multi-Model Databases (Official)" %}
**Unified multi-model data platforms with official Qyrus support:**

{% hint style="success" %}
**✅ Official Integration** - SurrealDB is the officially supported multi-model database connector for Qyrus Data Testing, providing comprehensive features for complex data validation workflows.
{% endhint %}

| Connector     | Type        | Best For                            |
| ------------- | ----------- | ----------------------------------- |
| **SurrealDB** | Multi-Model | Complex, multi-type data validation |

Perfect for:

* ✅ Document, graph, and relational data
* ✅ Real-time applications
* ✅ Time-series and geospatial data
* ✅ Full-text and vector search validation

[SurrealDB Connector →](/data-testing/nosql-databases/index/surreal.md)
{% endtab %}

{% tab title="Document Databases" %}
**Document-oriented database platforms:**

| Connector   | Type              | Best For                      |
| ----------- | ----------------- | ----------------------------- |
| **MongoDB** | Document Database | JSON/BSON document validation |

Perfect for:

* ✅ Document-based data structures
* ✅ Flexible schema validation
* ✅ Complex nested document comparisons

[MongoDB Connector →](/data-testing/nosql-databases/index/mongodb.md)
{% endtab %}
{% endtabs %}

***

## Common NoSQL Configuration

### Connection Parameters

| Parameter          | Description                                  | Required    |
| ------------------ | -------------------------------------------- | ----------- |
| **Host**           | Database server address or connection string | ✅ Yes       |
| **Port**           | Database service port                        | ✅ Yes       |
| **Database Name**  | Specific database/catalog                    | ✅ Yes       |
| **Authentication** | Username/Password or connection credentials  | ⚠️ Optional |

### Query Configuration

NoSQL databases use their native query languages:

* **MongoDB**: Uses MongoDB Query Language (MQL)
* **SurrealDB**: Uses SurrealQL
* **Aggregation Pipelines**: Supported for complex transformations

***

## MongoDB Guide

Document-based database with BSON format:

{% hint style="info" %}
MongoDB is ideal for:

* Semi-structured data
* Document comparisons
* Array and object validation
* Flexible schema evolution
  {% endhint %}

[**View MongoDB Connector Documentation →**](/data-testing/nosql-databases/index/mongodb.md)

***

## SurrealDB Guide

**⭐ Official Integration** - Multi-model database with SQL-like querying:

{% hint style="success" %}
SurrealDB is Qyrus Data Testing's officially supported multi-model connector, ideal for:

* Multiple data types in one system
* Graph relationships
* Time-series data
* Real-time applications
* Complex multi-type data validation workflows
  {% endhint %}

[**View SurrealDB Connector Documentation →**](/data-testing/nosql-databases/index/surreal.md)

***

## 🔐 Security Best Practices

{% hint style="warning" %}
**Security Recommendations:**

1. ✅ Use authentication on all instances
2. ✅ Implement network access controls
3. ✅ Use TLS/SSL for all connections
4. ✅ Create dedicated read-only validation users
5. ✅ Rotate credentials regularly
6. ✅ Enable audit logging
7. ✅ Restrict access by IP/network
   {% endhint %}

***

## Performance Optimization

| Optimization                         | Benefit                    | Impact |
| ------------------------------------ | -------------------------- | ------ |
| **Create indexes** on queried fields | Faster query execution     | High   |
| **Use aggregation pipelines**        | Filter data early          | High   |
| **Limit result sets**                | Reduce memory usage        | High   |
| **Batch processing**                 | Enable parallel validation | Medium |
| **Connection pooling**               | Efficient resource usage   | Medium |

***

## Choosing Between MongoDB and SurrealDB

| Aspect                     | MongoDB             | **⭐ SurrealDB (Official)** |
| -------------------------- | ------------------- | -------------------------- |
| **Data Model**             | Document-oriented   | Multi-model                |
| **Query Language**         | MQL/Aggregation     | SurrealQL/SQL              |
| **Schema Flexibility**     | Semi-structured     | Highly flexible            |
| **Relationships**          | Embedded/References | Native graph support       |
| **Time-Series**            | ⚠️ Limited          | ✅ Native support           |
| **Geospatial**             | ✅ Advanced          | ✅ Advanced                 |
| **Real-time**              | WebSocket support   | Built-in real-time         |
| **Qyrus Official Support** | ℹ️ Community        | ✅ **Officially Supported** |

***

## 🚀 Quick Start

1. **Choose your NoSQL platform** (MongoDB or SurrealDB)
2. **Gather connection details** from your database administrator
3. **Configure the connector** in your Data Testing job
4. **Write a query** using the platform's query language
5. **Test the connection** before creating validation jobs
6. **Create Compare or Evaluate jobs** for data validation

***

## Related Documentation

* [MongoDB Connector](/data-testing/nosql-databases/index/mongodb.md)
* [SurrealDB Connector](/data-testing/nosql-databases/index/surreal.md)
* [Data Source Overview](/data-testing/data-sources/index.md)
* [Create Compare Job](/data-testing/jobs-and-workflows/index/compare-job.md)
* [Create Evaluate Job](/data-testing/jobs-and-workflows/index/evaluate-job.md)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.qyrus.com/data-testing/nosql-databases/index.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
