MongoDB River Plugin for ElasticSearch
Initial implementation by aparo
Modified to get the same structure as the others Elasticsearch river (like CouchDB)
The latest version monitor oplog capped collection and support attachment (GridFS).
For the initla implementation see tutorial
curl -XPUT 'http://localhost:9200/_river/mongodb/_meta' -d '{ "type": "mongodb", "mongodb": { "db": "DATABASE_NAME", "collection": "COLLECTION", "gridfs": true }, "index": { "name": "ES_INDEX_NAME", "type": "ES_TYPE_NAME" } }'
Example:
curl -XPUT 'http://localhost:9200/_river/mongodb/_meta' -d '{ "type": "mongodb", "mongodb": { "db": "testmongo", "collection": "person" }, "index": { "name": "mongoindex", "type": "person" } }'
Import data from mongo console: `
use testmongo var p = {firstName: "John", lastName: "Doe"} db.person.save(p) `
Query index:
curl -XGET "http://localhost:9200/testmongo/_search?q=firstName:John"
curl -XPUT 'http://localhost:9200/_river/mongodb/_meta' -d '{ "type": "mongodb", "mongodb": { "db": "testmongo", "collection": "files", "gridfs": true }, "index": { "name": "mongoindex", "type": "files" } }'
- Import binary content in mongo:
%MONGO_HOME%\bin>mongofiles.exe --host localhost:27017 --db testmongo --collection files put test-document-2.pdf
connected to: localhost:27017 added file: { _id: ObjectId('4f230588a7da6e94984d88a1'), filename: "test-document-2.pdf", chunkSize: 262144, uploadDate: new Date(1327695240206), md5: "c2f251205576566826f86cd969158f24", length: 173293 } done!
Query index:
curl -XGET "http://localhost:9200/files/4f230588a7da6e94984d88a1?pretty=true"
See more details check the wiki