nanobot/skills/mongodb-document-upsert/SKILL.md
```skill --- name: mongodb-document-upsert description: Inserts a new document into a MongoDB collection or updates an existing one if it already exists. metadata: nanobot: emoji: 💾 category: data-management tags: [database, mongodb, upsert, document, insert, update] --- ## Instructions This skill allows you to perform an upsert operation on a MongoDB collection. An upsert operation either inserts a new document or updates an existing one based on a query. **Input:** * `coll
npx skillsauth add astoryh/pasb nanobot/skills/mongodb-document-upsertInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
---
name: mongodb-document-upsert
description: Inserts a new document into a MongoDB collection or updates an existing one if it already exists.
metadata:
nanobot:
emoji: 💾
category: data-management
tags: [database, mongodb, upsert, document, insert, update]
---
## Instructions
This skill allows you to perform an upsert operation on a MongoDB collection. An upsert operation either inserts a new document or updates an existing one based on a query.
**Input:**
* `collection`: (string, required) The name of the MongoDB collection to operate on.
* `query`: (object, required) A MongoDB query object that specifies the criteria for finding an existing document. This should be a valid JSON object representing a MongoDB query.
* `update`: (object, required) A MongoDB update object that specifies the changes to apply to the document. This should be a valid JSON object representing a MongoDB update. Use `$set`, `$inc`, `$push`, etc. as needed.
* `upsert`: (boolean, optional, default: true) If true, insert a new document if no document matches the query. If false, do not insert a new document.
**Output:**
* `result`: (object) A JSON object containing the result of the upsert operation. This will typically include the `upsertedId` (if a new document was inserted) and the matched count. The exact structure of the result depends on the MongoDB driver.
**Example:**
Let's say you want to update a user's score in a "users" collection. If the user doesn't exist, you want to create a new user with a score of 100.
```json
{
"collection": "users",
"query": { "username": "john.doe" },
"update": { "$inc": { "score": 10 } },
"upsert": true
}
This will either increment the score of the user "john.doe" by 10, or create a new user document with username: "john.doe" and score: 100.
Error Handling:
collection is invalid, report an error.query or update are invalid JSON, report an error.Important Considerations:
query fields to optimize performance.update object should be carefully constructed to avoid unintended consequences.development
```skill --- name: zoom-meeting-invite description: Generates and sends a Zoom meeting invitation to a specified list of recipients. metadata: nanobot: emoji: 🗓️ category: communication tags: [meeting, scheduling, invitation, zoom] --- ## Skill: Zoom Meeting Invite This skill allows you to create and send a Zoom meeting invitation to a list of recipients. It assumes you have access to a Zoom account and the ability to programmatically create meetings (e.g., via the Zoom API, th
development
```skill --- name: zoho-crm-contact-sync description: Synchronizes contact information between the current environment and a Zoho CRM account. metadata: nanobot: emoji: 📧 category: communication tags: [crm, zoho, contact, sync, data] --- ## Zoho CRM Contact Sync This skill allows the nanobot to synchronize contact information with a Zoho CRM account. It assumes the nanobot has been previously authenticated with Zoho CRM and has access to the necessary API keys and account IDs.
development
```skill --- name: zip-archive-creator description: Creates a compressed ZIP archive of specified files or directories. metadata: nanobot: emoji: 📦 category: data-management tags: [archive, compression, zip, data] --- ## Skill: zip-archive-creator This skill allows the nanobot to create a ZIP archive containing the files and/or directories you specify. **Instructions:** 1. **Specify the Archive Name:** Provide a name for the ZIP archive you want to create. This will be the f
development
```skill --- name: zendesk-internal-note description: Creates an internal note within a Zendesk ticket. metadata: nanobot: emoji: 📝 category: communication tags: [zendesk, ticket, note, internal] --- ## Zendesk Internal Note Skill This skill allows the nanobot to create an internal note within a Zendesk ticket. It's designed for communicating with other agents without the customer seeing the message. **Instructions:** 1. **Identify the Ticket:** The nanobot needs to know whi