--- title: "system.mongodb.findOne" description: "Returns a single PyDictionary that matches the criteria specified on the filter parameter." --- # system.mongodb.findOne > Returns a single PyDictionary that matches the criteria specified on the filter parameter. This function is used in **Python Scripting**. :::note Project Library scripts will not provide hints for MongoDB system functions unless the Script Hint Scope is set to **Gateway**. See the [Scripting in Ignition](platform\scripting\scripting-in-ignition\scripting-in-ignition.md#system-functions-hints-and-autocomplete) page for more details on scripting hints. ::: ## Description ## Client Permission Restrictions This scripting function has no [Client Permission](../../../ignition-modules/vision/vision-project-properties/vision-project-properties.md#vision-permissions-properties) restrictions. ## Syntax `system.mongodb.findOne(connector, collection, filter, [projection])` ### Parameters Type | Parameter | Description ------- | ------- | ------ String| `connector` | The name of connector (case-insensitive). String| `collection` | The name of collection (case-sensitive). PyDictionary| `filter` | A PyDictionary for specifying matching key value pair criteria when querying a collection. PyDictionary| `projection` | A PyDictionary for including or omitting specific key value pairs in the query result. [See MongoDB documentation](https://www.mongodb.com/docs/manual/tutorial/project-fields-from-query-results/) for all valid project values. [optional] ### Returns **PyDictionary** `result` - A single PyDictionary as a result. ### Scope Gateway, Perspective Session ## Importing Classes You can import classes from system.mongodb.types like you would other Python classes: #### Example ``` from system.mongodb.types import ObjectId newObjectId = ObjectId.get() ``` You can also iterate those system.mongodb.types packages to see all available classes: #### Example ``` for d in dir(system.mongodb.types): print d ``` ### API Docs MongoDB-specific data types come from the org.bson.types package of the Mongo Java Driver API. The library of classes available for import can be accessed at this link: [Mongo Java Driver 3.6.0 API Docs for Package org.bson.types](https://mongodb.github.io/mongo-java-driver/3.6/javadoc/org/bson/types/package-summary.html). ## Types References The following values can be referenced for the types parameter at system.mongodb.types: ``` Binary Code CodeWScope CodeWithScope Decimal128 INSTANCE MaxKey MinKey ObjectId Symbol Timestamp ``` ## Code Examples ```python title="Example #1" # Retrieve a both a connector name and collection name to query from. connector = system.mongodb.listConnectorInfo()[0]['name'] collection = system.mongodb.listCollectionNames(connector)[0] # Specify unique field values to locate specific document. filter = {"qualityControlProcess":"V020"} project = {"_id":1, "position":1,"elevation":1,"type":1} # Apply parameters for function call. document = system.mongodb.findOne(connector, collection, filter, project) # Print the result. Here it is expected that all key value pairs specified in the project parameter will be available. print "Document ID: " + str(document["_id"]) print "Type: " + str(document["type"]) print "Position: " + str(document["position"]) print "Elevation: " + str(document["elevation"]) ```