Proper way to import json file to mongo

json, mongodb, nosql

Solution

Docs note that:

This utility takes a single file that contains 1 JSON/CSV/TSV string per line and inserts it.

In the structure you are using -assuming the errors on the gist are fixed- you are essentially importing one document with only `shops` field.

After breaking the data into separate shop docs, import using something like (shops being the collection name, makes more sense than using `example`):

mongoimport -d test -c shops data.json

and then you can query like:

db.shops.find({"name":x,"categories.type":"shirts"})

Problem

I've been trying to use mongo with some data imported, but I'm not able to use it properly with my document description. This is an example of the .json I import using mongoimport: https://gist.github.com/2917854 ``` mongoimport -d test -c example data.json ``` I noticed that all my document it's imported to a unique object in spite of creating one of object for each shop. That's why when I try to find a shop or anything I want to query, all the document is returned. ``` db.example.find({"shops.name":"x"}) ``` I want to be able to query the db to obtain products by the id using dot notation something similar to: ``` db.example.find({"shops.name":"x","categories.type":"shirts","clothes.id":"1"} ``` The problem is that all the document is imported like a single object. The question is: How do I need to import the object to obtain my desired result?

Original source