Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Retrieve only the queried element in an object array in MongoDB collection?
You can use projection operator $elemMatch to filter in queried element in an object array in MongoDB collection. To retrieve only the queried element in an object array in MongoDB, let us first create a collection with documents object array.
The query is as follows:
> db.objectArray.insert({"Persons":[
{"PersonName":"Adam","PersonSalary":25000},{"PersonName":"Larry","PersonSalary":27000
}]});
WriteResult({ "nInserted" : 1 })
> db.objectArray.insert({"Persons":[
{"PersonName":"David","PersonSalary":32000},{"PersonName":"Carol","PersonSalary":77000
}]});
WriteResult({ "nInserted" : 1 })
Now you can display all the documents with the help of find(). The query is as follows:
> db.objectArray.find().pretty();
The following is the output:
{
"_id" : ObjectId("5c6bfadc68174aae23f5ef53"),
"Persons" : [
{
"PersonName" : "Adam",
"PersonSalary" : 25000
},
{
"PersonName" : "Larry",
"PersonSalary" : 27000
}
]
}
{
"_id" : ObjectId("5c6bfb0968174aae23f5ef54"),
"Persons" : [
{
"PersonName" : "David",
"PersonSalary" : 32000
},
{
"PersonName" : "Carol",
"PersonSalary" : 77000
}
]
}
Here is the query to retrieve only the queried element in an object array in MongoDB. Here In _id:0 is added to exclude the id property(do not show the _id property):
> db.objectArray.find({"Persons.PersonSalary":25000}, {
_id:0,Persons:{$elemMatch:{"PersonSalary":25000}}}).pretty();
The following is the output:
{
"Persons" : [
{
"PersonName" : "Adam",
"PersonSalary" : 25000
}
]
}
Alternate way to do the above task is with the help of projection operator $. The query is as follows:
> db.objectArray.find({"Persons.PersonSalary":25000}, { _id:0,'Persons.$':1}).pretty();
The following is the output:
{
"Persons" : [
{
"PersonName" : "Adam",
"PersonSalary" : 25000
}
]
}Advertisements