mongodb-update-many
A “mongodb-update-many” tool updates all documents in a MongoDB collection that match a filter.
About
A mongodb-update-many
tool updates all documents within a specified
MongoDB collection that match a given filter. It locates the documents using a
filterPayload
and applies the modifications defined in an updatePayload
.
The tool returns an array of three integers: [ModifiedCount, UpsertedCount, MatchedCount]
.
This tool is compatible with the following source kind:
Example
Here’s an example configuration. This tool applies a discount to all items within a specific category and also marks them as being on sale.
tools:
apply_category_discount:
kind: mongodb-update-many
source: my-mongo-source
description: Use this tool to apply a discount to all items in a given category.
database: products
collection: inventory
filterPayload: |
{ "category": {{json .category_name}} }
filterParams:
- name: category_name
type: string
description: The category of items to update.
updatePayload: |
{
"$mul": { "price": {{json .discount_multiplier}} },
"$set": { "on_sale": true }
}
updateParams:
- name: discount_multiplier
type: number
description: The multiplier to apply to the price (e.g., 0.8 for a 20% discount).
canonical: false
upsert: false
Reference
field | type | required | description |
---|---|---|---|
kind | string | true | Must be mongodb-update-many . |
source | string | true | The name of the mongodb source to use. |
description | string | true | A description of the tool that is passed to the LLM. |
database | string | true | The name of the MongoDB database containing the collection. |
collection | string | true | The name of the MongoDB collection in which to update documents. |
filterPayload | string | true | The MongoDB query filter document to select the documents for updating. It’s written as a Go template, using {{json .param_name}} to insert parameters. |
filterParams | list | true | A list of parameter objects that define the variables used in the filterPayload . |
updatePayload | string | true | The MongoDB update document, It’s written as a Go template, using {{json .param_name}} to insert parameters. |
updateParams | list | true | A list of parameter objects that define the variables used in the updatePayload . |
canonical | bool | true | Determines if the filterPayload and updatePayload strings are parsed using MongoDB’s Canonical or Relaxed Extended JSON format. Canonical is stricter about type representation, while Relaxed is more lenient. |
upsert | bool | false | If true , a new document is created if no document matches the filterPayload . Defaults to false . |