operations – Operation class definitions#

Operation class definitions.

class pymongo.operations.DeleteMany(filter: Mapping[str, Any], collation: _CollationIn | None = None, hint: _IndexKeyHint | None = None)#

Create a DeleteMany instance.

For use with bulk_write().

Parameters:
  • filter: A query that matches the documents to delete.

  • collation (optional): An instance of Collation.

  • hint (optional): An index to use to support the query predicate specified either by its string name, or in the same format as passed to create_index() (e.g. [('field', ASCENDING)]). This option is only supported on MongoDB 4.4 and above.

Changed in version 3.11: Added the hint option.

Changed in version 3.5: Added the collation option.

class pymongo.operations.DeleteOne(filter: Mapping[str, Any], collation: _CollationIn | None = None, hint: _IndexKeyHint | None = None)#

Create a DeleteOne instance.

For use with bulk_write().

Parameters:
  • filter: A query that matches the document to delete.

  • collation (optional): An instance of Collation.

  • hint (optional): An index to use to support the query predicate specified either by its string name, or in the same format as passed to create_index() (e.g. [('field', ASCENDING)]). This option is only supported on MongoDB 4.4 and above.

Changed in version 3.11: Added the hint option.

Changed in version 3.5: Added the collation option.

class pymongo.operations.IndexModel(keys: str | Sequence[str | Tuple[str, int | str | Mapping[str, Any]]] | Mapping[str, Any], **kwargs: Any)#

Create an Index instance.

For use with create_indexes().

Takes either a single key or a list containing (key, direction) pairs or keys. If no direction is given, ASCENDING will be assumed. The key(s) must be an instance of str, and the direction(s) must be one of (ASCENDING, DESCENDING, GEO2D, GEOSPHERE, HASHED, TEXT).

Valid options include, but are not limited to:

  • name: custom name to use for this index - if none is given, a name will be generated.

  • unique: if True, creates a uniqueness constraint on the index.

  • background: if True, this index should be created in the background.

  • sparse: if True, omit from the index any documents that lack the indexed field.

  • bucketSize: for use with geoHaystack indexes. Number of documents to group together within a certain proximity to a given longitude and latitude.

  • min: minimum value for keys in a GEO2D index.

  • max: maximum value for keys in a GEO2D index.

  • expireAfterSeconds: <int> Used to create an expiring (TTL) collection. MongoDB will automatically delete documents from this collection after <int> seconds. The indexed field must be a UTC datetime or the data will not expire.

  • partialFilterExpression: A document that specifies a filter for a partial index.

  • collation: An instance of Collation that specifies the collation to use.

  • wildcardProjection: Allows users to include or exclude specific field paths from a wildcard index using the { “$**” : 1} key pattern. Requires MongoDB >= 4.2.

  • hidden: if True, this index will be hidden from the query planner and will not be evaluated as part of query plan selection. Requires MongoDB >= 4.4.

See the MongoDB documentation for a full list of supported options by server version.

Parameters:
  • keys: a single key or a list containing (key, direction) pairs

    or keys specifying the index to create.

  • **kwargs (optional): any additional index creation options (see the above list) should be passed as keyword arguments.

Changed in version 3.11: Added the hidden option.

Changed in version 3.2: Added the partialFilterExpression option to support partial indexes.

property document: dict[str, Any]#

An index document suitable for passing to the createIndexes command.

class pymongo.operations.InsertOne(document: _DocumentType)#

Create an InsertOne instance.

For use with bulk_write().

Parameters:
  • document: The document to insert. If the document is missing an _id field one will be added.

class pymongo.operations.ReplaceOne(filter: Mapping[str, Any], replacement: _DocumentType | RawBSONDocument, upsert: bool = False, collation: _CollationIn | None = None, hint: _IndexKeyHint | None = None)#

Create a ReplaceOne instance.

For use with bulk_write().

Parameters:
  • filter: A query that matches the document to replace.

  • replacement: The new document.

  • upsert (optional): If True, perform an insert if no documents match the filter.

  • collation (optional): An instance of Collation.

  • hint (optional): An index to use to support the query predicate specified either by its string name, or in the same format as passed to create_index() (e.g. [('field', ASCENDING)]). This option is only supported on MongoDB 4.2 and above.

Changed in version 3.11: Added the hint option.

Changed in version 3.5: Added the collation option.

class pymongo.operations.SearchIndexModel(definition: Mapping[str, Any], name: str | None = None)#

Create a Search Index instance.

For use with create_search_index() and create_search_indexes().

Parameters:
  • definition - The definition for this index.

  • name (optional) - The name for this index, if present.

New in version 4.5.

Note

Search indexes require a MongoDB server version 7.0+ Atlas cluster.

property document: Mapping[str, Any]#

The document for this index.

class pymongo.operations.UpdateMany(filter: Mapping[str, Any], update: Mapping[str, Any] | _Pipeline, upsert: bool = False, collation: _CollationIn | None = None, array_filters: list[Mapping[str, Any]] | None = None, hint: _IndexKeyHint | None = None)#

Create an UpdateMany instance.

For use with bulk_write().

Parameters:
  • filter: A query that matches the documents to update.

  • update: The modifications to apply.

  • upsert (optional): If True, perform an insert if no documents match the filter.

  • collation (optional): An instance of Collation.

  • array_filters (optional): A list of filters specifying which array elements an update should apply.

  • hint (optional): An index to use to support the query predicate specified either by its string name, or in the same format as passed to create_index() (e.g. [('field', ASCENDING)]). This option is only supported on MongoDB 4.2 and above.

Changed in version 3.11: Added the hint option.

Changed in version 3.9: Added the ability to accept a pipeline as the update.

Changed in version 3.6: Added the array_filters option.

Changed in version 3.5: Added the collation option.

class pymongo.operations.UpdateOne(filter: Mapping[str, Any], update: Mapping[str, Any] | _Pipeline, upsert: bool = False, collation: _CollationIn | None = None, array_filters: list[Mapping[str, Any]] | None = None, hint: _IndexKeyHint | None = None)#

Represents an update_one operation.

For use with bulk_write().

Parameters:
  • filter: A query that matches the document to update.

  • update: The modifications to apply.

  • upsert (optional): If True, perform an insert if no documents match the filter.

  • collation (optional): An instance of Collation.

  • array_filters (optional): A list of filters specifying which array elements an update should apply.

  • hint (optional): An index to use to support the query predicate specified either by its string name, or in the same format as passed to create_index() (e.g. [('field', ASCENDING)]). This option is only supported on MongoDB 4.2 and above.

Changed in version 3.11: Added the hint option.

Changed in version 3.9: Added the ability to accept a pipeline as the update.

Changed in version 3.6: Added the array_filters option.

Changed in version 3.5: Added the collation option.