I am having trouble writing query to extract object from an array using SerialNumber
db.query.findOne({orderId:'13052017002593'});
{
"_id" : "36ndPwFKGdcTDRERx",
"orderId" : "13052017002593",
"items" : [
{
"serialNumber" : "XXX",
"status" : "COMPLETED",
"shippingType" : "MESSENGER",
"shippingDate" : ISODate("2017-05-16T10:16:16.941+0000"),
"returnDeposit" : true
},
{
"serialNumber" : "YYY",
"status" : "COMPLETED",
"shippingType" : "MESSENGER",
"shippingDate" : ISODate("2017-05-16T10:16:16.941+0000"),
"returnDeposit" : true
}
],
"createdAt" : ISODate("2017-05-13T10:15:09.904+0000")
}
Suppose if i want to extract object
{
"serialNumber" : "XXX",
"status" : "COMPLETED",
"shippingType" : "MESSENGER",
"shippingDate" : ISODate("2017-05-16T10:16:16.941+0000"),
"returnDeposit" : true
},
How Can i extract only this object?
I have database 3.2;
I tried running these queries:
let params = {
$and: [{ orderId }, {'items.serialNumber':serialNumber}]
};
let ctx = {
fields:{items:{$elemMatch:serialNumber}}
}
let order = Orders.find(params,ctx).fetch()
Which is giving error;
Also i tried:
let order = Orders.find({orderId:orderId},{_id:0,items:{$elemMatch: {serialNumber:serialNumber}}});
returning me all the values in the order object
Any one can help me please. Any suggestion is much appreciated ! Thanks!
I have also posted in meteor forum https://forums.meteor.com/t/how-to-get-only-one-object-from-array-of-objects/43613