Попытка вставить или обновить данные bill_info внутри массива приложения.Я использую четыре входных параметра для отдела поиска: sub_dept, application.name и type.Используя initializeOrderedBulkOp и ниже, запрос монго
bulk.find({ $and : [{ "department_name" : "Finance" ,
"sub_dept":{$elemMatch: {name: "Direct" }},
"sub_dept.application": {$elemMatch: {name:"HRM"}} , "type" : "Online" }]}).update
({ $addToSet : { "sub_dept.$.application.0.bill_info" :
{ "items" : [{ "qty" : "860000", "cost" : 390}],
"invoice" : 1000}
}});
Мое требование заключается в обновлении информации о счете в любом из массивов приложения на основе соответствующих четырех входных параметров (отдел, sub_dept, application.name и тип).Вышеупомянутый запрос иногда работает, но не во всех случаях.
{
"_id": ObjectId("5bba5d918169541704d38a6e"),
"department": "Finance",
"sub_dept": [
{
"name": "Indirect",
"application": [
{
"name": "Cab",
"date": "25/10/2013",
"cp": "Sam",
"bill_info": [
{
"items": [
{
"qty": "32",
"cost": NumberInt(22300)
},
{
"qty": "6000",
"cost": NumberInt(390)
}
],
"invoice": "1000",
}
]
},
{
"name": "Bus",
"date": "25/10/2013",
"cp": "John"
}
]
},
{
"name": "Direct",
"application": [
{
"name": "HRM",
"date": "25/10/2013",
"cp": "Alen"
},
{
"name": "Showroom",
"date": "25/10/2013",
"cp": "Xavier""bill_info": [
{
"items": [
{
"qty": "32",
"cost": NumberInt(22300)
},
{
"qty": "6000",
"cost": NumberInt(390)
}
],
"invoice": "2000",
}
]
}
]
},
{
"name": "Hybrid",
"application": [
{
"name": "Telephone",
"date": "25/10/2013",
"cp": "Galn""bill_info": [
{
"items": [
{
"qty": "32",
"cost": NumberInt(22300)
},
{
"qty": "6000",
"cost": NumberInt(390)
}
],
"invoice": "3000",
}
]
},
{
"name": "Mobile",
"date": "25/10/2013",
"cp": "Paul"
}
]
}
],
"type": "online"
}
Любая помощь по этому вопросу будет действительно полезна