-
Notifications
You must be signed in to change notification settings - Fork 1
Integrate/MongoDB: Simplify starter tutorial #254
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Warning Rate limit exceeded@amotl has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 17 minutes and 36 seconds before requesting another review. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. 📒 Files selected for processing (3)
WalkthroughAdds two new MongoDB docs (cloud and model), rewrites the MongoDB tutorial into a Docker-based end-to-end workflow, and updates the MongoDB index to include new toctree entries plus a migr8 note/link. No code or API changes. Changes
Sequence Diagram(s)sequenceDiagram
participant User
participant ctk
participant MongoDB_Atlas
participant CrateDB_Cloud
User->>ctk: ctk load table (mongodb URI, crate cluster-url with ssl=true)
ctk->>MongoDB_Atlas: Connect and read documents
ctk->>CrateDB_Cloud: Create schema/table if needed
ctk->>CrateDB_Cloud: Write rows
User->>CrateDB_Cloud: Verify via crash SELECT
sequenceDiagram
participant User
participant Docker
participant MongoDB
participant CrateDB
participant ctk
User->>Docker: Create network (cratedb-demo)
User->>Docker: Run CrateDB container
User->>Docker: Run MongoDB container
User->>MongoDB: Insert sample documents (mongosh)
User->>ctk: ctk load table (mongodb://mongodb/... -> crate://cratedb/...)
ctk->>MongoDB: Read data
ctk->>CrateDB: Load data
User->>CrateDB: SELECT to verify
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~15 minutes Possibly related PRs
Suggested labels
Suggested reviewers
Poem
✨ Finishing Touches
🧪 Generate unit tests
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. CodeRabbit Commands (Invoked using PR/Issue comments)Type Other keywords and placeholders
CodeRabbit Configuration File (
|
The goal is to present concise walkthroughs without many bells and whistles, which get to the point of getting you started quickly. The content now uses the established template for the starter tutorial in `tutorial.md`. What's different here is that the backbone section also includes two separate files now, one educating about MongoDB's data model, and the other one specifically educating about usage in Cloud environments.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 5
🔭 Outside diff range comments (1)
docs/integrate/mongodb/index.md (1)
83-88
: CDC description references the wrong CLI subcommandCDC streaming is not performed via
ctk load table
(full-load). It should reference the CDC relay command.-Standalone CLI `ctk load table` for streaming changes of MongoDB collections -into CrateDB (`cdc`), optionally using transformations. +Standalone CLI `ctk cdc relay` for streaming changes of MongoDB collections +into CrateDB (`cdc`), optionally using transformations.
🧹 Nitpick comments (8)
docs/integrate/mongodb/model.md (2)
16-18
: Format_id
as code to avoid unintended italicsUnderscores render as emphasis; use code ticks for the MongoDB
_id
field.- - A **primary key** in MongoDB is typically the _id field, which uniquely + - A **primary key** in MongoDB is typically the `_id` field, which uniquely
6-15
: Clarify CrateDB “database” vs. “schema” terminologyMinor but important nuance: CrateDB uses schemas as top-level namespaces in the cluster; there isn’t a separate “database per schema.” Consider a brief footnote to avoid confusion when mapping MongoDB databases to CrateDB schemas.
Would you like me to propose a one-line clarification to append to the database bullet?
docs/integrate/mongodb/cloud.md (1)
31-34
: Avoid embedding credentials directly; show env var patternSafer and copy-paste friendly to use environment variables for URLs.
-ctk load table \ - "mongodb+srv://admin:[email protected]/testdrive/demo" \ - --cluster-url='crate://admin:[email protected]:4200/testdrive/demo?ssl=true' +export MONGODB_URL="mongodb+srv://<MONGODB_USER>:<MONGODB_PASSWORD>@<MONGODB_ATLAS_HOST>/testdrive/demo" +export CRATE_URL="crate://admin:<ADMIN_PASSWORD>@<CRATEDB_CLOUD_HOST>:4200/testdrive/demo?ssl=true" +ctk load table "$MONGODB_URL" --cluster-url="$CRATE_URL"docs/integrate/mongodb/index.md (2)
97-98
: Optional: Order concepts before workflows in the toctreePlacing “model” before “cloud” helps readers grasp concepts before Cloud specifics.
- cloud - model + model + cloud
106-110
: Tighten wording in the migr8 noteConcise phrasing; avoid “also”.
-::: {note} -The MongoDB I/O subsystem is based on the [migr8] migration utility package. Please also -check its documentation to learn about more of its capabilities, supporting -you when working with MongoDB. -::: +::: {note} +The MongoDB I/O subsystem is based on the [migr8] migration utility package. Consult its +documentation for advanced capabilities when working with MongoDB. +:::docs/integrate/mongodb/tutorial.md (3)
41-46
: Mention zsh profiles for macOS usersMost macOS users default to zsh; suggest
.zshrc
alongside.profile
.-To make the settings persistent, add them to your Shell profile (`~/.profile`). +To make the settings persistent, add them to your shell profile (e.g., `~/.profile` or `~/.zshrc`).
68-71
: Polish instruction text for clarityMinor grammar/style improvement.
-Insert record into MongoDB collection; you can also do it twice or more. +Insert a record into a MongoDB collection; you can repeat this step as needed.
75-78
: Optional: show env var usage for connection stringsThis mirrors the Cloud page suggestion and avoids hardcoding hostnames.
-ctk load table \ - "mongodb://mongodb/test/testdrive" \ - --cluster-url="crate://cratedb/doc/testdrive" +export MONGODB_URL="mongodb://mongodb/test/testdrive" +export CRATE_URL="crate://cratedb/doc/testdrive" +ctk load table "$MONGODB_URL" --cluster-url="$CRATE_URL"
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
💡 Knowledge Base configuration:
- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories
You can enable these settings in your CodeRabbit configuration.
📒 Files selected for processing (4)
docs/integrate/mongodb/cloud.md
(1 hunks)docs/integrate/mongodb/index.md
(1 hunks)docs/integrate/mongodb/model.md
(1 hunks)docs/integrate/mongodb/tutorial.md
(1 hunks)
🧰 Additional context used
🧠 Learnings (3)
📚 Learning: 2025-08-09T16:19:43.966Z
Learnt from: amotl
PR: crate/cratedb-guide#238
File: docs/integrate/azure-functions/learn.rst:1-1
Timestamp: 2025-08-09T16:19:43.966Z
Learning: In the CrateDB Guide documentation, main integration anchors (e.g., `azure-functions`) are intentionally placed in the `index.md` files of their respective integration folders, while detailed tutorials use the `-learn` suffix (e.g., `azure-functions-learn`) in their `learn.rst` or `learn.md` files. This is a deliberate architectural pattern for the documentation restructuring.
Applied to files:
docs/integrate/mongodb/index.md
docs/integrate/mongodb/cloud.md
docs/integrate/mongodb/tutorial.md
📚 Learning: 2025-08-08T16:50:14.965Z
Learnt from: amotl
PR: crate/cratedb-guide#234
File: docs/home/index.md:47-50
Timestamp: 2025-08-08T16:50:14.965Z
Learning: In the CrateDB Guide docs (MyST), the correct intersphinx target for the CrateDB Cloud documentation homepage is `cloud:index` (not `cloud:docs-index` or `cloud-docs-index`). Use `:link: cloud:index` on cards/links. The `cloud` mapping is inherited via crate-docs-theme.
Applied to files:
docs/integrate/mongodb/cloud.md
📚 Learning: 2025-08-07T23:11:08.311Z
Learnt from: amotl
PR: crate/cratedb-guide#232
File: docs/_include/links.md:11-11
Timestamp: 2025-08-07T23:11:08.311Z
Learning: In the CrateDB Guide repository, intersphinx mappings like "cloud" are defined within the root project `crate-docs-theme` and inherited by the documentation projects, so they don't need to be explicitly defined in individual `docs/conf.py` files.
Applied to files:
docs/integrate/mongodb/cloud.md
🪛 LanguageTool
docs/integrate/mongodb/index.md
[grammar] ~97-~97: There might be a mistake here.
Context: ...th: 1 :hidden: Tutorial cloud model ::: :::{seealso} Blog: [Anno...
(QB_NEW_EN)
[grammar] ~98-~98: There might be a mistake here.
Context: ...:hidden: Tutorial cloud model ::: :::{seealso} Blog: [Announcing...
(QB_NEW_EN)
[grammar] ~102-~102: There might be a mistake here.
Context: ...tutorial> cloud model ::: :::{seealso} Blog: [Announcing MongoDB CDC Integr...
(QB_NEW_EN)
[grammar] ~103-~103: There might be a mistake here.
Context: ...ation (Public Preview) in CrateDB Cloud] ::: :::{note} The MongoDB I/O subsystem...
(QB_NEW_EN)
[style] ~107-~107: The word “also” tends to be overused. Consider using a formal alternative to strengthen your wording.
Context: ... the [migr8] migration utility package. Please also check its documentation to learn about ...
(PLEASE_ALSO_CHECK)
docs/integrate/mongodb/cloud.md
[grammar] ~3-~3: There might be a mistake here.
Context: ... [MongoDB Atlas] into [CrateDB Cloud] is similar, with a few small adjustments. ...
(QB_NEW_EN)
[grammar] ~6-~6: There might be a mistake here.
Context: ...ustments. First, helpful aliases again: :::{code} shell alias ctk="docker run --...
(QB_NEW_EN)
[grammar] ~7-~7: There might be a mistake here.
Context: ..., helpful aliases again: :::{code} shell alias ctk="docker run --rm -it ghcr.io/c...
(QB_NEW_EN)
[grammar] ~8-~8: There might be a mistake here.
Context: ...m -it ghcr.io/crate/cratedb-toolkit ctk" alias crash="docker run --rm -it ghcr.io...
(QB_NEW_EN)
[grammar] ~9-~9: There might be a mistake here.
Context: ...o/crate-workbench/cratedb-toolkit crash" ::: You will need your credentials for ...
(QB_NEW_EN)
[grammar] ~15-~15: There might be a mistake here.
Context: ...ese are, with examples: CrateDB Cloud * Host: ```gray-wicket.aks1.westeurope.azu...
(QB_NEW_EN)
[grammar] ~16-~16: There might be a mistake here.
Context: ...th examples: CrateDB Cloud * Host: gray-wicket.aks1.westeurope.azure.cratedb.net
* Username: admin
* Password: ```-9....
(QB_NEW_EN)
[grammar] ~17-~17: There might be a mistake here.
Context: ...europe.azure.cratedb.net* Username:
admin* Password:
-9..nn``` *MongoDB Atlas...
(QB_NEW_EN)
[grammar] ~20-~20: There might be a mistake here.
Context: ... Password: -9..nn
MongoDB Atlas * Host: cluster0.nttj7.mongodb.net
...
(QB_NEW_EN)
[grammar] ~21-~21: There might be a mistake here.
Context: ...`-9..nn **MongoDB Atlas** * Host:
cluster0.nttj7.mongodb.net``` * User: ```admin``` * Password: ```a1..d...
(QB_NEW_EN)
[grammar] ~22-~22: There might be a mistake here.
Context: ...cluster0.nttj7.mongodb.net * User:
admin * Password:
a1..d1``` For CrateDB, the...
(QB_NEW_EN)
[grammar] ~25-~25: There might be a mistake here.
Context: ... CrateDB, the credentials are displayed at time of cluster creation. For MongoDB, ...
(QB_NEW_EN)
[grammar] ~25-~25: There might be a mistake here.
Context: ...e displayed at time of cluster creation. For MongoDB, they can be found in the [c...
(QB_NEW_EN)
[grammar] ~29-~29: There might be a mistake here.
Context: ...e/collection into CrateDB schema/table. :::{code} shell ctk load table \ "mong...
(QB_NEW_EN)
[grammar] ~30-~30: There might be a mistake here.
Context: ...o CrateDB schema/table. :::{code} shell ctk load table \ "mongodb+srv://admin:...
(QB_NEW_EN)
[grammar] ~31-~31: There might be a mistake here.
Context: ...a/table. :::{code} shell ctk load table \ "mongodb+srv://admin:[email protected]...
(QB_NEW_EN)
[grammar] ~32-~32: There might be a mistake here.
Context: ...ster0.nttj7.mongodb.net/testdrive/demo" \ --cluster-url='crate://admin:-..n@gray-w...
(QB_NEW_EN)
[grammar] ~33-~33: There might be a mistake here.
Context: ...ratedb.net:4200/testdrive/demo?ssl=true' ::: ::: {note} Note the necessary `...
(QB_NEW_EN)
[grammar] ~36-~36: There might be a mistake here.
Context: ...testdrive/demo?ssl=true' ::: ::: {note} Note the necessary ssl=true
query ...
(QB_NEW_EN)
[grammar] ~37-~37: There might be a mistake here.
Context: ...the end of both database connection URLs when working on Cloud-to-Cloud transfers...
(QB_NEW_EN)
[grammar] ~38-~38: There might be a mistake here.
Context: ...hen working on Cloud-to-Cloud transfers. ::: Verify that relevant data has been ...
(QB_NEW_EN)
[grammar] ~42-~42: There might be a mistake here.
Context: ... transferred to CrateDB. :::{code} shell crash --hosts 'https://admin:-..n@gray-w...
(QB_NEW_EN)
[grammar] ~43-~43: There might be a mistake here.
Context: ...-command 'SELECT * FROM testdrive.demo;' ::: [cloud platform]: https://cloud.m...
(QB_NEW_EN)
docs/integrate/mongodb/model.md
[grammar] ~3-~3: There might be a mistake here.
Context: ...ollections and documents. CrateDB stores data in schemas and tables. - A **datab...
(QB_NEW_EN)
[grammar] ~7-~7: There might be a mistake here.
Context: ...roups tables together within a database. - A collection in MongoDB is a groupin...
(QB_NEW_EN)
[grammar] ~9-~9: There might be a mistake here.
Context: ...hich is a structured collection of rows. - A document in MongoDB is a record in...
(QB_NEW_EN)
[grammar] ~12-~12: There might be a mistake here.
Context: ...ield, and the value represents the data. - A field in MongoDB is similar to a c...
(QB_NEW_EN)
[grammar] ~15-~15: There might be a mistake here.
Context: ...s for the records (or rows/documents). - A primary key in MongoDB is typicall...
(QB_NEW_EN)
[grammar] ~18-~18: There might be a mistake here.
Context: ... uniquely identifies a row in a table. - An index in MongoDB is similar to an...
(QB_NEW_EN)
docs/integrate/mongodb/tutorial.md
[grammar] ~8-~8: There might be a mistake here.
Context: ...y the [CrateDB Toolkit MongoDB I/O] data pipeline elements. ## Prerequisites Do...
(QB_NEW_EN)
[grammar] ~35-~35: There might be a mistake here.
Context: ... CrateDB Toolkit, and the MongoDB client programs. ::::{tab-set} :::{tab-item} ...
(QB_NEW_EN)
[grammar] ~40-~40: There might be a mistake here.
Context: ...{tab-set} :::{tab-item} Linux and macOS To make the settings persistent, add the...
(QB_NEW_EN)
[grammar] ~47-~47: There might be a mistake here.
Context: ...db-demo docker.io/mongo mongosh" ``` ::: :::{tab-item} Windows PowerShell To make...
(QB_NEW_EN)
[grammar] ~48-~48: There might be a mistake here.
Context: ...``` ::: :::{tab-item} Windows PowerShell To make the settings persistent, add the...
(QB_NEW_EN)
[grammar] ~55-~55: There might be a mistake here.
Context: ... docker.io/mongo mongosh @Args } ::: :::{tab-item} Windows Command
shell d...
(QB_NEW_EN)
[grammar] ~68-~68: There might be a mistake here.
Context: ... ``` ::: :::: ## Usage Insert record into MongoDB collection; you can also do it ...
(QB_NEW_EN)
[grammar] ~87-~87: There might be a mistake here.
Context: ...``` ::::{todo} Import data to MongoDB: :::{code} shell mongoimport --db testdri...
(QB_NEW_EN)
[grammar] ~88-~88: There might be a mistake here.
Context: ... Import data to MongoDB: :::{code} shell mongoimport --db testdrive --collection ...
(QB_NEW_EN)
[grammar] ~89-~89: There might be a mistake here.
Context: ...on demo --file demodata.json --jsonArray ::: :::{note} mongoimport
is part of ...
(QB_NEW_EN)
[grammar] ~92-~92: There might be a mistake here.
Context: ...demodata.json --jsonArray ::: :::{note} mongoimport
is part of the [MongoDB Da...
(QB_NEW_EN)
[grammar] ~93-~93: There might be a mistake here.
Context: ...is part of the [MongoDB Database tools]. ::: :::: [CrateDB Toolkit MongoDB I/O...
(QB_NEW_EN)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: Build docs
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
♻️ Duplicate comments (5)
docs/integrate/mongodb/cloud.md (4)
15-18
: Set CrateDB Cloud username to admin and keep placeholder for passwordAdmin is the default user in CrateDB Cloud. This improves accuracy and consistency with later examples.
-**CrateDB Cloud** -* Host: `<CRATEDB_CLOUD_HOST>` -* Username: `<CRATEDB_USER>` -* Password: `<CRATEDB_PASSWORD>` +**CrateDB Cloud** +* Host: `<CRATEDB_CLOUD_HOST>` +* Username: `admin` +* Password: `<ADMIN_PASSWORD>`
8-10
: Unify toolkit image and flags for aliasesUse the same image for both crash and ctk, keep -i for ctk (non-interactive) and -it for crash (interactive).
-alias crash="docker run --rm -it ghcr.io/crate-workbench/cratedb-toolkit crash" -alias ctk="docker run --rm -i ghcr.io/crate/cratedb-toolkit ctk" +alias crash="docker run --rm -it ghcr.io/crate/cratedb-toolkit crash" +alias ctk="docker run --rm -i ghcr.io/crate/cratedb-toolkit ctk"
31-34
: Avoid embedding real-looking credentials/hosts in examplesReplace with clear placeholders to prevent accidental leakage and improve reusability.
-ctk load table \ - "mongodb+srv://admin:[email protected]/testdrive/demo" \ - --cluster-url='crate://admin:[email protected]:4200/testdrive/demo?ssl=true' +ctk load table \ + "mongodb+srv://<MONGODB_USER>:<MONGODB_PASSWORD>@<MONGODB_ATLAS_HOST>/<DB>/<COLLECTION>" \ + --cluster-url='crate://admin:<ADMIN_PASSWORD>@<CRATEDB_CLOUD_HOST>:4200/<SCHEMA>/<TABLE>?ssl=true'If you want, I can propagate these placeholders consistently across the page and align them with an “Environment variables” section.
43-44
: Sanitize verification command to use placeholdersAvoid shipping example secrets in URLs; align with the placeholders above.
-crash --hosts 'https://admin:[email protected]:4200' --command 'SELECT * FROM testdrive.demo;' +crash --hosts 'https://admin:<ADMIN_PASSWORD>@<CRATEDB_CLOUD_HOST>:4200' --command 'SELECT * FROM <SCHEMA>.<TABLE>;'docs/integrate/mongodb/model.md (1)
24-26
: Fix stray list marker in seealso blockThe double dash will render incorrectly. Replace with a plain sentence.
-:::{seealso} --- [Databases and Collections] -::: +:::{seealso} +See also: [Databases and Collections]. +:::
🧹 Nitpick comments (7)
docs/integrate/mongodb/tutorial.md (4)
43-46
: Make mongosh alias interactiveUse -it so mongosh works well in interactive sessions too (ctk stays -i).
-alias mongosh="docker run --rm -i --network=cratedb-demo docker.io/mongo mongosh" +alias mongosh="docker run --rm -it --network=cratedb-demo docker.io/mongo mongosh"
51-54
: Make mongosh function interactive on PowerShellParity with Linux/macOS.
-function mongosh { docker run --rm -i --network=cratedb-demo docker.io/mongo mongosh @args } +function mongosh { docker run --rm -it --network=cratedb-demo docker.io/mongo mongosh @args }
58-61
: Make mongosh macro interactive on Windows cmdParity with other platforms.
-doskey mongosh=docker run --rm -i --network=cratedb-demo docker.io/mongo mongosh $* +doskey mongosh=docker run --rm -it --network=cratedb-demo docker.io/mongo mongosh $*
86-92
: Align bulk import example with earlier database/collection namingEarlier steps use database “test” and collection “testdrive” (via db.testdrive with mongosh). Keep names consistent to reduce confusion.
-::::{tip} -To bulk import example data into MongoDB: -:::{code} shell -mongoimport --db testdrive --collection demo --file demodata.json --jsonArray -::: -Note: `mongoimport` is part of the [MongoDB Database tools]. -:::: +::::{tip} +To bulk import example data into the same database and collection used above: +:::{code} shell +mongoimport --db test --collection testdrive --file demodata.json --jsonArray +::: +Note: `mongoimport` is part of the [MongoDB Database tools]. +::::docs/integrate/mongodb/index.md (1)
106-109
: Consider cross-linking loader and CDC pages here for discoverabilitySince you mention migr8, adding direct links to the loader and CDC Relay docs would help readers jump straight to the CLIs.
-:::{note} -The MongoDB I/O subsystem is based on the [migr8] migration utility package. Consult its -documentation for advanced capabilities when working with MongoDB. -::: +:::{note} +The MongoDB I/O subsystem is based on the [migr8] migration utility package. Consult its +documentation for advanced capabilities when working with MongoDB, including the +{ref}`ctk:mongodb-loader` (full-load) and {ref}`ctk:mongodb-cdc-relay` (CDC). +:::docs/integrate/mongodb/model.md (2)
6-9
: Tighten wording around CrateDB “database” conceptCrateDB doesn’t expose a separate “database” container to users; mapping MongoDB database → CrateDB schema is fine, but avoid implying an extra CrateDB “database” layer.
-- A **database** in MongoDB is a physical container for collections, similar - to a schema in CrateDB, which groups tables together within a database. +- A **database** in MongoDB is a physical container for collections, roughly + corresponding to a schema in CrateDB, which groups tables together.Please confirm this aligns with your terminology guidelines across the Guide.
10-15
: Optional: Acknowledge nested documents support in CrateDBCrateDB can store nested structures via OBJECT columns. A short note can prevent over-simplification.
-- A **document** in MongoDB is a record in a collection, similar to a row in - a CrateDB table. It is a set of key-value pairs, where each key represents - a field, and the value represents the data. +- A **document** in MongoDB is a record in a collection, similar to a row in + a CrateDB table. It is a set of key-value pairs. Note: Nested structures can + be modeled in CrateDB using OBJECT columns when appropriate.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
💡 Knowledge Base configuration:
- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories
You can enable these settings in your CodeRabbit configuration.
📒 Files selected for processing (4)
docs/integrate/mongodb/cloud.md
(1 hunks)docs/integrate/mongodb/index.md
(1 hunks)docs/integrate/mongodb/model.md
(1 hunks)docs/integrate/mongodb/tutorial.md
(1 hunks)
🧰 Additional context used
🧠 Learnings (2)
📚 Learning: 2025-08-09T16:19:43.966Z
Learnt from: amotl
PR: crate/cratedb-guide#238
File: docs/integrate/azure-functions/learn.rst:1-1
Timestamp: 2025-08-09T16:19:43.966Z
Learning: In the CrateDB Guide documentation, main integration anchors (e.g., `azure-functions`) are intentionally placed in the `index.md` files of their respective integration folders, while detailed tutorials use the `-learn` suffix (e.g., `azure-functions-learn`) in their `learn.rst` or `learn.md` files. This is a deliberate architectural pattern for the documentation restructuring.
Applied to files:
docs/integrate/mongodb/tutorial.md
docs/integrate/mongodb/index.md
📚 Learning: 2025-08-14T19:02:43.262Z
Learnt from: amotl
PR: crate/cratedb-guide#253
File: docs/integrate/mindsdb/index.md:21-33
Timestamp: 2025-08-14T19:02:43.262Z
Learning: In CrateDB integration documentation examples, default connection parameters (user="crate", password="", host="127.0.0.1") are intentionally used to provide working out-of-the-box examples for users with local CrateDB instances, rather than using placeholder values that require customization.
Applied to files:
docs/integrate/mongodb/cloud.md
🪛 LanguageTool
docs/integrate/mongodb/tutorial.md
[grammar] ~8-~8: There might be a mistake here.
Context: ...y the [CrateDB Toolkit MongoDB I/O] data pipeline elements. ## Prerequisites Do...
(QB_NEW_EN)
[grammar] ~35-~35: There might be a mistake here.
Context: ... CrateDB Toolkit, and the MongoDB client programs. ::::{tab-set} :::{tab-item} ...
(QB_NEW_EN)
[grammar] ~40-~40: There might be a mistake here.
Context: ...{tab-set} :::{tab-item} Linux and macOS To make the settings persistent, add the...
(QB_NEW_EN)
[grammar] ~47-~47: There might be a mistake here.
Context: ...db-demo docker.io/mongo mongosh" ``` ::: :::{tab-item} Windows PowerShell To make...
(QB_NEW_EN)
[grammar] ~48-~48: There might be a mistake here.
Context: ...``` ::: :::{tab-item} Windows PowerShell To make the settings persistent, add the...
(QB_NEW_EN)
[grammar] ~55-~55: There might be a mistake here.
Context: ... docker.io/mongo mongosh @Args } ::: :::{tab-item} Windows Command
shell d...
(QB_NEW_EN)
docs/integrate/mongodb/cloud.md
[grammar] ~3-~3: There might be a mistake here.
Context: ... [MongoDB Atlas] into [CrateDB Cloud] is similar, with a few small adjustments. ...
(QB_NEW_EN)
[grammar] ~15-~15: There might be a mistake here.
Context: ...ese are, with examples: CrateDB Cloud * Host: <CRATEDB_CLOUD_HOST>
* Username:...
(QB_NEW_EN)
[grammar] ~16-~16: There might be a mistake here.
Context: ...th examples: CrateDB Cloud * Host: <CRATEDB_CLOUD_HOST>
* Username: <CRATEDB_USER>
* Password: `...
(QB_NEW_EN)
[grammar] ~17-~17: There might be a mistake here.
Context: ...ost: <CRATEDB_CLOUD_HOST>
* Username: <CRATEDB_USER>
* Password: <CRATEDB_PASSWORD>
**MongoD...
(QB_NEW_EN)
[grammar] ~20-~20: There might be a mistake here.
Context: ...d: <CRATEDB_PASSWORD>
MongoDB Atlas * Host: <MONGODB_ATLAS_HOST>
* User: `...
(QB_NEW_EN)
[grammar] ~21-~21: There might be a mistake here.
Context: ...PASSWORD> **MongoDB Atlas** * Host:
<MONGODB_ATLAS_HOST> * User:
<MONGODB_USER> * Password:
<M...
(QB_NEW_EN)
[grammar] ~22-~22: There might be a mistake here.
Context: ... Host: <MONGODB_ATLAS_HOST>
* User: <MONGODB_USER>
* Password: <MONGODB_PASSWORD>
For Crat...
(QB_NEW_EN)
[grammar] ~25-~25: There might be a mistake here.
Context: ... CrateDB, the credentials are displayed at time of cluster creation. For MongoDB, ...
(QB_NEW_EN)
[grammar] ~25-~25: There might be a mistake here.
Context: ...e displayed at time of cluster creation. For MongoDB, they can be found in the [c...
(QB_NEW_EN)
[grammar] ~37-~37: There might be a mistake here.
Context: ... cluster URL. For MongoDB Atlas SRV URIs (mongodb+srv://
), TLS is implied and n...
(QB_NEW_EN)
[grammar] ~38-~38: There might be a mistake here.
Context: ...mplied and no extra parameter is needed. ::: Verify that relevant data has been ...
(QB_NEW_EN)
docs/integrate/mongodb/index.md
[grammar] ~97-~97: There might be a mistake here.
Context: ...th: 1 :hidden: Tutorial cloud model ::: :::{seealso} Blog: [Anno...
(QB_NEW_EN)
[grammar] ~98-~98: There might be a mistake here.
Context: ...:hidden: Tutorial cloud model ::: :::{seealso} Blog: [Announcing...
(QB_NEW_EN)
[grammar] ~102-~102: There might be a mistake here.
Context: ...tutorial> cloud model ::: :::{seealso} Blog: [Announcing MongoDB CDC Integr...
(QB_NEW_EN)
[grammar] ~103-~103: There might be a mistake here.
Context: ...ation (Public Preview) in CrateDB Cloud] ::: :::{note} The MongoDB I/O subsystem...
(QB_NEW_EN)
docs/integrate/mongodb/model.md
[grammar] ~3-~3: There might be a mistake here.
Context: ...ollections and documents. CrateDB stores data in schemas and tables. - A **datab...
(QB_NEW_EN)
[grammar] ~7-~7: There might be a mistake here.
Context: ...roups tables together within a database. - A collection in MongoDB is a groupin...
(QB_NEW_EN)
[grammar] ~9-~9: There might be a mistake here.
Context: ...hich is a structured collection of rows. - A document in MongoDB is a record in...
(QB_NEW_EN)
[grammar] ~12-~12: There might be a mistake here.
Context: ...ield, and the value represents the data. - A field in MongoDB is similar to a c...
(QB_NEW_EN)
[grammar] ~15-~15: There might be a mistake here.
Context: ...s for the records (or rows/documents). - A primary key in MongoDB is typicall...
(QB_NEW_EN)
[grammar] ~18-~18: There might be a mistake here.
Context: ... uniquely identifies a row in a table. - An index in MongoDB is similar to an...
(QB_NEW_EN)
[grammar] ~24-~24: There might be a mistake here.
Context: ...thin documents (or rows). :::{seealso} -- [Databases and Collections] ::: [Da...
(QB_NEW_EN)
[grammar] ~25-~25: There might be a mistake here.
Context: ...{seealso} -- [Databases and Collections] ::: [Databases and Collections]: https...
(QB_NEW_EN)
🔇 Additional comments (2)
docs/integrate/mongodb/cloud.md (1)
36-39
: TLS note is correct and helpfulGood clarification: ssl=true is required for CrateDB Cloud URLs; MongoDB SRV implies TLS and needs no extra flag.
docs/integrate/mongodb/index.md (1)
97-99
: Toctree additions look goodAdding cloud and model improves navigation and aligns with the new pages.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A few nitpicks only
docs/integrate/mongodb/cloud.md
Outdated
# Cloud to Cloud | ||
|
||
The procedure for importing data from [MongoDB Atlas] into [CrateDB Cloud] is | ||
similar, with a few small adjustments. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I miss some context: similar to what?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, similar like the starter tutorial for CrateDB+MongoDB standalone. Fixed per 2ad59ea.
docs/integrate/mongodb/cloud.md
Outdated
alias ctk="docker run --rm -i ghcr.io/crate/cratedb-toolkit ctk" | ||
``` | ||
|
||
You will need your credentials for both CrateDB and MongoDB. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You will need your credentials for both CrateDB and MongoDB. | |
You will need credentials for both CrateDB and MongoDB. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed per 2ad59ea.
docs/integrate/mongodb/index.md
Outdated
::: | ||
|
||
:::{note} | ||
The MongoDB I/O subsystem is based on the [migr8] migration utility package. Consult its |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The MongoDB I/O subsystem is based on the [migr8] migration utility package. Consult its | |
The MongoDB component is based on the [migr8] migration utility package. Consult its |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed per 2ad59ea.
docs/integrate/mongodb/model.md
Outdated
# MongoDB's data model | ||
|
||
MongoDB stores data in collections and documents. CrateDB stores | ||
data in schemas and tables. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
data in schemas and tables. | |
data in tables and rows. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed per 2ad59ea.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
♻️ Duplicate comments (5)
docs/integrate/mongodb/index.md (1)
106-110
: Good addition: migr8 note provides helpful discoverabilityClear pointer to the underlying utility with an actionable suggestion to consult its docs.
docs/integrate/mongodb/model.md (1)
24-26
: Fix stray list marker inside seealso blockThe
--
will not render as intended; convert it to a sentence referencing the existing link definition.Apply this diff:
:::{seealso} --- [Databases and Collections] +See also: [Databases and Collections]. :::docs/integrate/mongodb/cloud.md (3)
9-11
: Unify container image and flags for aliasesUse the same image for both aliases; keep
-i
for ctk (non-interactive) and-it
for crash (interactive).Apply this diff:
-alias crash="docker run --rm -it ghcr.io/crate-workbench/cratedb-toolkit crash" -alias ctk="docker run --rm -i ghcr.io/crate/cratedb-toolkit ctk" +alias ctk="docker run --rm -i ghcr.io/crate/cratedb-toolkit ctk" +alias crash="docker run --rm -it ghcr.io/crate/cratedb-toolkit crash"
32-35
: Avoid real-looking hosts in examples; use placeholdersKeep examples generic to prevent confusion or accidental disclosure patterns.
Apply this diff:
-ctk load table \ - "mongodb+srv://admin:[email protected]/testdrive/demo" \ - --cluster-url='crate://admin:[email protected]:4200/testdrive/demo?ssl=true' +ctk load table \ + "mongodb+srv://<MONGODB_USER>:<MONGODB_PASSWORD>@<MONGODB_ATLAS_HOST>/testdrive/demo" \ + --cluster-url='crate://<CRATEDB_USER>:<CRATEDB_PASSWORD>@<CRATEDB_CLOUD_HOST>:4200/testdrive/demo?ssl=true'
44-45
: Use placeholders in verification command as wellMirror the placeholder approach used above for consistency and safety.
Apply this diff:
-crash --hosts 'https://admin:[email protected]:4200' --command 'SELECT * FROM testdrive.demo;' +crash --hosts 'https://<CRATEDB_USER>:<CRATEDB_PASSWORD>@<CRATEDB_CLOUD_HOST>:4200' --command 'SELECT * FROM testdrive.demo;'
🧹 Nitpick comments (2)
docs/integrate/mongodb/cloud.md (2)
3-5
: Grammar: “similar like” → “similar to”Minor polish for readability.
Apply this diff:
-The procedure for importing data from [MongoDB Atlas] into [CrateDB Cloud] is -similar like the {ref}`standalone variant <mongodb-tutorial>`, with a few small +The procedure for importing data from [MongoDB Atlas] into [CrateDB Cloud] is +similar to the {ref}`standalone variant <mongodb-tutorial>`, with a few small adjustments.
16-24
: List formatting and consistency
- Fix indentation under “MongoDB Atlas” to satisfy MD007 (unordered list indentation).
- Optional: align label names (“Username” vs. “User”) for consistency.
Apply this diff to fix indentation:
**MongoDB Atlas** - * Host: `<MONGODB_ATLAS_HOST>` - * User: `<MONGODB_USER>` - * Password: `<MONGODB_PASSWORD>` +* Host: `<MONGODB_ATLAS_HOST>` +* User: `<MONGODB_USER>` +* Password: `<MONGODB_PASSWORD>`
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
💡 Knowledge Base configuration:
- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (4)
docs/integrate/mongodb/cloud.md
(1 hunks)docs/integrate/mongodb/index.md
(1 hunks)docs/integrate/mongodb/model.md
(1 hunks)docs/integrate/mongodb/tutorial.md
(1 hunks)
🧰 Additional context used
🧠 Learnings (3)
📚 Learning: 2025-08-09T16:19:43.966Z
Learnt from: amotl
PR: crate/cratedb-guide#238
File: docs/integrate/azure-functions/learn.rst:1-1
Timestamp: 2025-08-09T16:19:43.966Z
Learning: In the CrateDB Guide documentation, main integration anchors (e.g., `azure-functions`) are intentionally placed in the `index.md` files of their respective integration folders, while detailed tutorials use the `-learn` suffix (e.g., `azure-functions-learn`) in their `learn.rst` or `learn.md` files. This is a deliberate architectural pattern for the documentation restructuring.
Applied to files:
docs/integrate/mongodb/tutorial.md
docs/integrate/mongodb/index.md
📚 Learning: 2025-08-14T19:02:43.308Z
Learnt from: amotl
PR: crate/cratedb-guide#253
File: docs/integrate/mindsdb/index.md:21-33
Timestamp: 2025-08-14T19:02:43.308Z
Learning: In CrateDB integration documentation examples, default connection parameters (user="crate", password="", host="127.0.0.1") are intentionally used to provide working out-of-the-box examples for users with local CrateDB instances, rather than using placeholder values that require customization.
Applied to files:
docs/integrate/mongodb/cloud.md
📚 Learning: 2025-08-05T07:14:57.416Z
Learnt from: hammerhead
PR: crate/cratedb-guide#221
File: docs/connect/configure.md:58-66
Timestamp: 2025-08-05T07:14:57.416Z
Learning: In CrateDB connection strings, the user:password@ syntax is valid for HTTP Basic authentication on port 4200, but PostgreSQL JDBC drivers do not support this format and require credentials as query parameters (?user=<user>&password=<password>) instead.
Applied to files:
docs/integrate/mongodb/cloud.md
🪛 LanguageTool
docs/integrate/mongodb/tutorial.md
[grammar] ~8-~8: There might be a mistake here.
Context: ...y the [CrateDB Toolkit MongoDB I/O] data pipeline elements. ## Prerequisites Do...
(QB_NEW_EN)
[grammar] ~35-~35: There might be a mistake here.
Context: ... CrateDB Toolkit, and the MongoDB client programs. ::::{tab-set} :::{tab-item} ...
(QB_NEW_EN)
[grammar] ~40-~40: There might be a mistake here.
Context: ...{tab-set} :::{tab-item} Linux and macOS To make the settings persistent, add the...
(QB_NEW_EN)
[grammar] ~47-~47: There might be a mistake here.
Context: ...db-demo docker.io/mongo mongosh" ``` ::: :::{tab-item} Windows PowerShell To make...
(QB_NEW_EN)
[grammar] ~48-~48: There might be a mistake here.
Context: ...``` ::: :::{tab-item} Windows PowerShell To make the settings persistent, add the...
(QB_NEW_EN)
[grammar] ~55-~55: There might be a mistake here.
Context: ... docker.io/mongo mongosh @Args } ::: :::{tab-item} Windows Command
shell d...
(QB_NEW_EN)
[grammar] ~86-~86: There might be a mistake here.
Context: ...ECT * FROM doc.testdrive" ``` :::{tip} To bulk import example data into the sam...
(QB_NEW_EN)
[grammar] ~91-~91: There might be a mistake here.
Context: ...is part of the [MongoDB Database tools]. ::: [CrateDB Toolkit MongoDB I/O]: htt...
(QB_NEW_EN)
docs/integrate/mongodb/cloud.md
[grammar] ~3-~3: There might be a mistake here.
Context: ... [MongoDB Atlas] into [CrateDB Cloud] is similar like the {ref}`standalone varian...
(QB_NEW_EN)
[grammar] ~4-~4: There might be a mistake here.
Context: ...nt `, with a few small adjustments. First, helpful aliases: ``...
(QB_NEW_EN)
[grammar] ~16-~16: There might be a mistake here.
Context: ...ese are, with examples: CrateDB Cloud * Host: <CRATEDB_CLOUD_HOST>
* Username:...
(QB_NEW_EN)
[grammar] ~17-~17: There might be a mistake here.
Context: ...th examples: CrateDB Cloud * Host: <CRATEDB_CLOUD_HOST>
* Username: <CRATEDB_USER>
* Password: `...
(QB_NEW_EN)
[grammar] ~18-~18: There might be a mistake here.
Context: ...ost: <CRATEDB_CLOUD_HOST>
* Username: <CRATEDB_USER>
* Password: <CRATEDB_PASSWORD>
**MongoD...
(QB_NEW_EN)
[grammar] ~21-~21: There might be a mistake here.
Context: ...d: <CRATEDB_PASSWORD>
MongoDB Atlas * Host: <MONGODB_ATLAS_HOST>
* User: `...
(QB_NEW_EN)
[grammar] ~22-~22: There might be a mistake here.
Context: ...PASSWORD> **MongoDB Atlas** * Host:
<MONGODB_ATLAS_HOST> * User:
<MONGODB_USER> * Password:
<M...
(QB_NEW_EN)
[grammar] ~23-~23: There might be a mistake here.
Context: ... Host: <MONGODB_ATLAS_HOST>
* User: <MONGODB_USER>
* Password: <MONGODB_PASSWORD>
For Crat...
(QB_NEW_EN)
[grammar] ~26-~26: There might be a mistake here.
Context: ... CrateDB, the credentials are displayed at time of cluster creation. For MongoDB, ...
(QB_NEW_EN)
[grammar] ~26-~26: There might be a mistake here.
Context: ...e displayed at time of cluster creation. For MongoDB, they can be found in the [c...
(QB_NEW_EN)
[grammar] ~38-~38: There might be a mistake here.
Context: ... cluster URL. For MongoDB Atlas SRV URIs (mongodb+srv://
), TLS is implied and n...
(QB_NEW_EN)
[grammar] ~39-~39: There might be a mistake here.
Context: ...mplied and no extra parameter is needed. ::: Verify that relevant data has been ...
(QB_NEW_EN)
docs/integrate/mongodb/index.md
[grammar] ~97-~97: There might be a mistake here.
Context: ...th: 1 :hidden: Tutorial cloud model ::: :::{seealso} Blog: [Anno...
(QB_NEW_EN)
[grammar] ~98-~98: There might be a mistake here.
Context: ...:hidden: Tutorial cloud model ::: :::{seealso} Blog: [Announcing...
(QB_NEW_EN)
[grammar] ~102-~102: There might be a mistake here.
Context: ...tutorial> cloud model ::: :::{seealso} Blog: [Announcing MongoDB CDC Integr...
(QB_NEW_EN)
[grammar] ~103-~103: There might be a mistake here.
Context: ...ation (Public Preview) in CrateDB Cloud] ::: :::{note} The MongoDB I/O component...
(QB_NEW_EN)
docs/integrate/mongodb/model.md
[grammar] ~3-~3: There might be a mistake here.
Context: ...ollections and documents. CrateDB stores data in tables and rows. - A **database...
(QB_NEW_EN)
[grammar] ~7-~7: There might be a mistake here.
Context: ...n CrateDB, which groups tables together. - A collection in MongoDB is a groupin...
(QB_NEW_EN)
[grammar] ~9-~9: There might be a mistake here.
Context: ...hich is a structured collection of rows. - A document in MongoDB is a record in...
(QB_NEW_EN)
[grammar] ~12-~12: There might be a mistake here.
Context: ...B using OBJECT columns when appropriate. - A field in MongoDB is similar to a c...
(QB_NEW_EN)
[grammar] ~15-~15: There might be a mistake here.
Context: ...s for the records (or rows/documents). - A primary key in MongoDB is typicall...
(QB_NEW_EN)
[grammar] ~18-~18: There might be a mistake here.
Context: ... uniquely identifies a row in a table. - An index in MongoDB is similar to an...
(QB_NEW_EN)
[grammar] ~24-~24: There might be a mistake here.
Context: ...thin documents (or rows). :::{seealso} -- [Databases and Collections] ::: [Da...
(QB_NEW_EN)
[grammar] ~25-~25: There might be a mistake here.
Context: ...{seealso} -- [Databases and Collections] ::: [Databases and Collections]: https...
(QB_NEW_EN)
🪛 markdownlint-cli2 (0.17.2)
docs/integrate/mongodb/cloud.md
16-16: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
21-21: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
22-22: Unordered list indentation
Expected: 0; Actual: 2
(MD007, ul-indent)
23-23: Unordered list indentation
Expected: 0; Actual: 2
(MD007, ul-indent)
24-24: Unordered list indentation
Expected: 0; Actual: 2
(MD007, ul-indent)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: Build docs
🔇 Additional comments (3)
docs/integrate/mongodb/index.md (2)
97-99
: Toctree additions for “cloud” and “model” look goodEntries are correctly added and hidden, and labels align with the new docs.
113-113
: Reference link for migr8 is correctThe link target renders and matches the mentioned component.
docs/integrate/mongodb/cloud.md (1)
38-40
: TLS note is correctAccurately states
ssl=true
for CrateDB Cloud and that SRV implies TLS for MongoDB Atlas.
About
The goal is to present concise walkthroughs without many bells and whistles, which get to the point of getting you started quickly.
Details
The content now uses the established template for the starter tutorial in
tutorial.md
. What's different here is that the backbone section also includes two separate files now, one educating about MongoDB's data model, and the other one specifically educating about usage in Cloud environments.Preview
https://cratedb-guide--254.org.readthedocs.build/integrate/mongodb/tutorial.html
https://cratedb-guide--254.org.readthedocs.build/integrate/mongodb/