apoc.mongodb.get.byObjectId
Procedure Apoc Extended
apoc.mongodb.get.byObjectId(hostOrKey, db, collection, objectIdValue, config(default:{})) - get the document by Object id value
Signature
apoc.mongodb.get.byObjectId(host :: STRING?, db :: STRING?, collection :: STRING?, objectIdValue :: STRING?, config = {} :: MAP?) :: (value :: MAP?)
Input parameters
| Name | Type | Default | 
|---|---|---|
host  | 
STRING?  | 
null  | 
db  | 
STRING?  | 
null  | 
collection  | 
STRING?  | 
null  | 
objectIdValue  | 
STRING?  | 
null  | 
config  | 
MAP?  | 
{}  | 
Config parameters
The procedure supports the following config parameters:
| name | type | default | description | 
|---|---|---|---|
compatibleValues  | 
boolean  | 
true  | 
converts MongoDB data types into Neo4j data types  | 
extractReferences  | 
boolean  | 
false  | 
if true and a field contains an ObjectId, it will include the related document instead of the ObjectId  | 
objectIdAsMap  | 
boolean  | 
true  | 
extract the   | 
idFieldName  | 
String  | 
  | 
the field name of the   | 
Install Dependencies
The Mongo procedures have dependencies on a client library that is not included in the APOC Extended library.
This dependency is included in apoc-mongodb-dependencies-2025.04.0-all.jar, which can be downloaded from the releases page.
Once that file is downloaded, it should be placed in the plugins directory and the Neo4j Server restarted.
Usage Examples
Field description
- 
host: the MongoDB host in the formatmongodb://<HOST_NAME>:<PORT>or a url defined into the apoc configapoc.mongodb.myInstance.url=mongodb://<HOST_NAME>:<PORT>, which can be invoked by simply passingmyInstance - 
db: the db name - 
collection: the collection name - 
objectIdValue: theObjectIdof the document to retrieve - 
config: the config map 
Examples
Given the following collections:
// Product
...
{"_id": ObjectId("product1"), "name": "Product 1", "price": 100}
{"_id": ObjectId("product3"), "name": "Product 2", "price": 200}
{"_id": ObjectId("product3"), "name": "Product 3", "price": 300}
{"_id": ObjectId("product4"), "name": ObjectId("507f191e810c19729de860ea"), "price": 400}
...
// Person
...
{"_id": ObjectId("person"), "name": "Andrea", "bought": [ObjectId("product1"), ObjectId("product3")]}
...
With CALL apoc.mongodb.get.byObjectId(<HOST>, <DB>, "product", "product1"):
{
  "_id": {
  	"timestamp": <...>,
	"machineIdentifier": <...>,
	"processIdentifier": <...>,
	"counter": <...>,
  }
  "name": "Product 1",
  "price": 100L
}
With CALL apoc.mongodb.get.byObjectId(<HOST>, <DB>, "product", "product4", {idFieldName: "name"}):
{
  "_id": {
  	"timestamp": <...>,
	"machineIdentifier": <...>,
	"processIdentifier": <...>,
	"counter": <...>,
  }
  "name": "507f191e810c19729de860ea",
  "price": 400L
}
With CALL apoc.mongodb.get.byObjectId(<HOST>, <DB>, "product", "product1", "_id", {extractReferences: true, objectIdAsMap: true, compatibleValues: false}):
{
  "_id": {
  	"timestamp": <...>,
	"machineIdentifier": <...>,
	"processIdentifier": <...>,
	"counter": <...>,
  },
  "name": "Andrea",
  "bought": [
    {
      "_id": {
	  	"timestamp": <...>,
		"machineIdentifier": <...>,
		"processIdentifier": <...>,
		"counter": <...>,
	  },
	  "name": "Product 1",
	  "price": 100
	},
    {
      "_id": {
	  	"timestamp": <...>,
		"machineIdentifier": <...>,
		"processIdentifier": <...>,
		"counter": <...>,
	  },
	  "name": "Product 3",
	  "price": 300
	},
  ]
}