Nahikariii Nahikariii - 3 months ago 16
JSON Question

Proper way to import json file to mongo

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?

Answer

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"})