Click here to Skip to main content
15,888,968 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
I'm new using MongoDB.
I have a collection of documents like this:

{
        "_id" : ObjectId("58204f60536d1a27736d512b"),
        "last_name" : "Vinaykumar",
        "university_name" : "Osmania University",
        "job_483" : 1,
        "xiith_mark" : 0,
        "id" : "3305775",
        "first_name" : "V",
        "course_name" : "Diploma",
        "institute_name_string" : "Govt.Polytechnic,Kothagudem",
        "profile_percentage" : 60,
        "xiith_mark_type" : "Percentage",
        "xth_mark_type" : "Percentage",
        "date_of_birth" : "11-March-1995",
        "xth_mark" : 0,
        "last_login" : 1379565790,
        "percentage" : 76,
        "job_details" : [
    	{
    	    "status" : NumberLong(0),
    		"applied_date" : NumberLong(1476703354),
    		"contact_viwed_status" : 0,
    		"label_name" : [ ],
    		"questionnaire_status" : 0,
    		"batch_id" : null,
    		"owner_type" : "searches",
    		"call_letter" : null,
    		"owner_id" : NumberLong(465)
    	},
    	{
    	    "status" : NumberLong(0),
    		"applied_date" : NumberLong(1477051963),
    		"contact_viwed_status" : 0,
    		"label_name" : [ ],
    		"questionnaire_status" : 0,
    		"batch_id" : null,
    		"owner_type" : "searches",
    		"call_letter" : null,
    		"owner_id" : NumberLong(482)
    	},
    	{
    		"status" : NumberLong(0),
    		"applied_date" : NumberLong(1477052973),
    		"contact_viwed_status" : 0,
    		"label_name" : [ ],
    		"questionnaire_status" : 0,
    		"batch_id" : null,
    		"owner_type" : "searches",
    		"call_letter" : null,
    		"owner_id" : NumberLong(483)
       }
       ],
       "branch_name" : "Electrical & Electronics",
       "candidate_state_name" : "Andhra Pradesh",
       "candidate_city_name_string" : "Andhra Pradesh-other",
       "10" : 10,
       "12" : 12,
       "gender" : "Male",
       "fw_id" : "FW15651132",
       "cgpa" : 0,
       "picture_path" : "",
       "hq_passout_year" : 2013
    },

..........
.............
I need to find data from this db with facet count .

**Need facet count for following fields**
1.job_details.status
2.job_details.label_name
3.job_details.contact_viwed_status
4.candidate_city_name_string
5.course_name
6.hq_passout_year
7.branch_name
8.candidate_sublocation_name_string
9.skill
And total matching count and data with limit

I did separate query for each facet and one query for total count and one query for data
Total 9+1+1=11 querys

**Query's are**

What I have tried:

Query's are

facet query's for job_details.status and job_details.label_name and job_details.contact_viwed_status did like this
Python
<pre lang="Python">
db.Response.aggregate([
        {"$match":{"$and":[{"job_details.owner_id" : 428},    
        {"job_details.owner_type" : 'searches'}]}}, 
        {"$unwind": "$job_details" }, 
        {"$group": {"_id":"$job_details.status","count": {"$sum": 1 }} }
        ])

other 6 facet query's like this

db.Response.aggregate([ {"$and":[{"job_details.owner_id" : 428},{"job_details.owner_type" : 'searches'}]},
                    {"$group": {"_id":"$candidate_city_name_string","count": {"$sum": 1 }}}] )


**query for collecting data**



db.Response.aggregate([
                  {"$and":[{"job_details.owner_id" : 428}{"job_details.owner_type" : 'searches'}]},
                  {"$limit":25},``
                  { "$skip":0} ,
                  {"$unwind":"$job_details"}])


query for collecting total count

<pre>db.Response.find({"$and":[{"job_details.owner_id" : 428},{"job_details.owner_type" : 'searches'}]}).count()


Total 3+9+1+1=11 Querys
So performance is very very low . Is possible to make this 11 api to`enter code here` single api or how can i improve the performance.
please help.
Posted
Updated 7-Nov-16 21:30pm
v4

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900