In mongoose when i call find() function and update inside the find finction , the function iterate but data is not inserted into subarray it is inserted into root array.
this is my code
for (let k in listMed) {
insertUpdate(listMed[k]);
}
Function
function insertUpdate(med) {
StockDB.findOne({ Medicine_name: med.Medicine_name }, function (err, element) {
if (err) {
console.log(err);
}
else {
console.log(element);
if (element != null) {
element.MRP = med.MRP;
element.Rate = (parseFloat(med.MRP) / parseFloat(med.PerCount));
element.Items.push({
Batch_no: med.Batch_no,
Exp_date: med.ExpDate,
Quantity: med.PerCount
});
element.save();
}
else {
StockDB.insertMany({
Medicine_name: med.Medicine_name,
MRP: med.MRP,
Rate: (parseFloat(med.MRP) / parseFloat(med.PerCount)),
Items: [{
Batch_no: med.Batch_no,
Exp_date: med.ExpDate,
Quantity: med.PerCount
}]
});
}
}
});}
I want to store like this
[
{
Medicine_name: "Rantac 150",
Price : "30",
Items : [
{
Batch_no : b123,
Expiry_date : 22-02-2028,
}
{
Batch_no : b113,
Expiry_date : 12-05-2027,
}
{
Batch_no : b153,
Expiry_date : 20-01-2024,
}
]
}
]
But it is srore the data like this
[
{
Medicine_name: "Rantac 150",
Price : "30",
Items : [
{
Batch_no : b123,
Expiry_date : 22-02-2028,
}
]
}
{
Medicine_name: "Rantac 150",
Price : "30",
Items : [
{
Batch_no : b113,
Expiry_date : 12-05-2027,
}
]
}
{
Medicine_name: "Rantac 150",
Price : "30",
Items : [
{
Batch_no : b153,
Expiry_date : 20-01-2024,
}
]
}
]
object is not push into the items array , it repeatedliy call insert function but 1st time when inserted element will be not null but it is still null