Reputation: 139
I have some documents :
{
"storeID" : "715R",
"sensorID" : [
"0BBA",
"0BB9"
]
}
{
"storeID" : "312R",
"sensorID" : [
"0BBB"
]
}
I want to get result of sensorID
which sotreID
match any value in storeIDarray
like ['715R','312R','789R']
in this case I want get result : a sensorID
array : [ "0BBA", "0BB9","0BBB"]
what should I do? thanks.
Upvotes: 7
Views: 4579
Reputation: 5534
You should take a look at the $in
operator in MongoDB.
Use it with a find, then, to make your request faster, you can use the lean
method : with it, mongoDB will return JS objects and not Mongoose model/objects.
YourModel.find({storeID: {$in: storeIDarray }}).lean().exec(yourCallback);
Then, you can use the reduce
method on the resulting array :
yourResult.reduce((acc, el) => acc.concat(el.sensorID), []);
Hope it helps,
Best regards
Upvotes: 7