Importing a MongoDb Collection through Ruby (ROR)

1.3k Views Asked by At

I'm trying to seed my database with a collection exported via the mongoexport tool, but I can't seem to find any way to use the mongoimport tool through Ruby.

I looked at the Mongo Driver for how to execute mongo queries via Ruby, and thought about iterating through each line of json from the export, but there are keys like "$oid" which give errors when attempting to do a collection.insert()

Is it possible to use the mongoimport tool in Ruby, or what's the best way to add code to seeds.rb so that it imports a mongo collection?

2

There are 2 best solutions below

0
On BEST ANSWER

The mongoimport tool is actually a command-line tool. So you don't use the Mongo Driver for this.

Instead you should "shell out" and call the process. Here's a link on calling a command from the shell.

Calling shell commands from Ruby

0
On

mongoexport exports documents in an extended json format specified in the MongoDB docs.

http://www.mongodb.org/display/DOCS/Mongo+Extended+JSON

The driver doesn't read this format automatically. For seeding a database, you may want to use mongodump and mongorestore, which use the database's native BSON format. As another poster mentioned, you could easily shell out to do this.