MongoDB (Deprecated)
|
These procedures are deprecated in favor of apoc.mongo.* procedures . |
Install Dependencies
The Mongo procedures have dependencies on a client library that is not included in the APOC Library.
This dependency is included in apoc-mongodb-dependencies-4.1.0.11.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.
Field description
-
hostorkey: 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 -
query: query params -
projection: projection params -
sort: sort params -
compatibleValues(false|true): converts MongoDB data types into Neo4j data types -
skip: num of documents to skip -
limit: num of documents to limit -
extractReferences(false|true): if true and a field contains anObjectIdit will include the related document instead of theObjectId -
objectIdAsMap(true|false): extract theObjectIdas map -
documents: the documents to insert -
update: the updated params
Examples
Following an example that could help to understand the behaviour of extractReferences, compatibleValues and objectIdAsMap:
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}
...
// Person
...
{"_id": ObjectId("person"), "name": "Andrea", "bought": [ObjectId("product1"), ObjectId("product3")]}
...
With the extractReferences=true, compatibleValues=true and objectIdAsMap=false:
{
"_id": "person",
"name": "Andrea",
"bought": [
{"_id": "product1", "name": "Product 1", "price": 100},
{"_id": "product3", "name": "Product 3", "price": 300}
]
}
With the extractReferences=true, compatibleValues=true and objectIdAsMap=true:
{
"_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
},
]
}
With the extractReferences=false, compatibleValues=false and objectIdAsMap=false:
{
"_id": "person",
"name": "Andrea",
"bought": ["product1", "product3"]
}
Dependencies
Copy these jars into the plugins directory:
-
bson-3.4.2.jar
-
mongo-java-driver-3.4.2.jar
-
mongodb-driver-3.4.2.jar
-
mongodb-driver-core-3.4.2.jar
You should be able to get them from here, and here (BSON) (via Download)
Or you get them locally from your gradle build of apoc.
gradle copyRuntimeLibs cp lib/mongodb*.jar lib/bson*.jar $NEO4J_HOME/plugins/