For Example i have given 5objects which is mobile seller list .i want to select only who are all selling Brand:Nokia,Modelname:Lumia,Submodel:Lumia 735 TS,Lumia 510 how can i write condtion in express and if user select Brand:Nokia,Modelname:Lumia,Submodel:Lumia 735 TS how can i write condtion in express i have given my controller pls help me out im struggling last 3 days. stored seller list in mongodb
object 1
{
"_id": {
"$oid": "56a63a968411612f36ab4b5d"
},
"default": [],
"Categories": [
{
"models": [
{
"submodel": [
{
"price": "7500",
"name": "Lumia 735 TS"
},
{
"price": "1000",
"name": "Lumia 510"
}
],
"name": "Lumia"
}
],
"brandname": "Nokia",
"id": "986745"
}
],
"Storename": "Poorvika Mobiles",
"__v": 0
}
object 2:
{
"_id": {
"$oid": "56a63b418411612f36ab4b5e"
},
"default": [],
"Categories": [
{
"models": [
{
"submodel": [
{
"price": "7500",
"name": "Lumia 735 TS"
},
{
"price": "8500",
"name": "Lumia 830"
}
],
"name": "Lumia"
}
],
"brandname": "Nokia",
"id": "986745"
}
],
"Storename": "Nokia Store",
"__v": 0
}
object 3:
{
"_id": {
"$oid": "56a63b738411612f36ab4b5f"
},
"default": [],
"Categories": [
{
"models": [
{
"submodel": [
{
"price": "7500",
"name": "Lumia 735 TS"
},
{
"price": "8500",
"name": "Lumia 830"
}
],
"name": "Lumia"
},
{
"submodel": [
{
"price": "12000",
"name": "Asha Asn01"
},
{
"price": "5000",
"name": "Nokia Asha Dual sim"
}
],
"name": "Asha"
}
],
"brandname": "Nokia",
"id": "986745"
}
],
"Storename": "Sun Mobiles",
"__v": 0
}
object 4:
{
"_id": {
"$oid": "56a63b7d8411612f36ab4b60"
},
"default": [],
"Categories": [
{
"models": [
{
"submodel": [
{
"price": "7500",
"name": "Lumia 735 TS"
},
{
"price": "1000",
"name": "Lumia 510"
}
],
"name": "Lumia"
},
{
"submodel": [
{
"price": "12000",
"name": "Asha Asn01"
},
{
"price": "5000",
"name": "Nokia Asha Dual sim"
}
],
"name": "Asha"
}
],
"brandname": "Nokia",
"id": "986745"
}
],
"Storename": "Mobile Corner",
"__v": 0
}
object 5:
{
"_id": {
"$oid": "56a63b948411612f36ab4b61"
},
"default": [],
"Categories": [
{
"models": [
{
"submodel": [
{
"price": "8500",
"name": "Trend 840"
},
{
"price": "10000",
"name": "Galaxy Note Duos"
}
],
"name": "Galaxy"
}
],
"brandname": "Samsung",
"id": "144745"
}
],
"Storename": "Asath Mobile Center",
"__v": 0
}
object 6:
{
"_id": {
"$oid": "56a63ba48411612f36ab4b62"
},
"default": [],
"Categories": [
{
"models": [
{
"submodel": [
{
"price": "8500",
"name": "Trend 840"
},
{
"price": "10000",
"name": "Galaxy Note Duos"
}
],
"name": "Galaxy"
},
{
"submodel": [
{
"price": "6700",
"name": "Asha 230"
},
{
"price": "8500",
"name": "Asha Asn01"
}
],
"name": "Asha"
}
],
"brandname": "Samsung",
"id": "144745"
}
],
"Storename": "Zigzag Mobiles",
"__v": 0
}
object 7:
{
"_id": {
"$oid": "56a63baf8411612f36ab4b63"
},
"default": [],
"Categories": [
{
"models": [
{
"submodel": [
{
"price": "7500",
"name": "Lumia 735 TS"
},
{
"price": "1000",
"name": "Lumia 510"
}
],
"name": "Lumia"
},
{
"submodel": [
{
"price": "12000",
"name": "Asha Asn01"
},
{
"price": "5000",
"name": "Nokia Asha Dual sim"
}
],
"name": "Asha"
}
],
"brandname": "Nokia",
"id": "986745"
},
{
"models": [
{
"submodel": [
{
"price": "8500",
"name": "Trend 840"
},
{
"price": "10000",
"name": "Galaxy Note Duos"
}
],
"name": "Galaxy"
},
{
"submodel": [
{
"price": "6700",
"name": "Asha 230"
},
{
"price": "8500",
"name": "Asha Asn01"
}
],
"name": "Asha"
}
],
"brandname": "Samsung",
"id": "144745"
}
],
"Storename": "Mobile Bazar",
"__v": 0
}
Controller:
exports.shopByPhone = function(req, res) {
Shop.find().sort('-created').populate('user', 'displayName').exec(function(err, shops) {
if (err) {
return res.status(400).send({
message: errorHandler.getErrorMessage(err)
});
} else {
res.jsonp(shops);
}
});
};
condtion 1: I want to filter data who are selling only
Brand : Nokia
Model : Lumia
Submodel : Lumia 735 TS,Lumia 510
If Above condtion matches it should display oly these 3 sellers
1.Poorvika Mobiles
2.Mobile Corner
3.Mobile Bazar
these 3 shops only selling
Brand : Nokia
Model : Lumia
Submodel : Lumia 735 TS,Lumia 510
Condtion 2:
I want to filter data who are selling only
Brand : Nokia
Model : Lumia
Submodel : Lumia 735 TS
If Above condtion matches it should display oly these 3 sellers
1.Poorvika Mobiles
2.Mobile Corner
3.Mobile Bazar
these 3 shops only selling
Brand : Nokia
Model : Lumia
Submodel : Lumia 735 TS,Lumia 510
Try
find({
'Categories.brandname':'Nokia',
'Categories.models.name':'Lumia',
'Categories.models.submodel.name':
{'$all':['Lumia 510', 'Lumia 735 TS']}
})
$all
will give you stores that sell both Lumia 510 and Lumia 735. if you need query that selects either one of these models, use $in
instead.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.