Я новичок в MongoDb
Здесь я упомянул документ
{
"_id" : ObjectId("5e5bc292361b710c7727718e"),
"branch_id" : "BR5cc825dac42dac3aae49ff91",
"inventory" : [
{
"inventory_stock_id" : "MED344",
"stock_name" : "Anacin123",
"stock_point" : "27",
"stock_type" : "Medicine",
"batch" : [
{
"quantity" : 40,
"manuf_date" : "10-01-2020",
"exp_date" : "01-04-2020"
},
{
"quantity" : 60,
"manuf_date" : "15-02-2020",
"exp_date" : "03-03-2020"
}
]
}
]
}
Мне даны значения branch_id = "BR5cc825dac42dac3aae49ff91", inventory_stock_id = "MED344" и количество равно 50
Это мой запрос, заданный , но он сравнивает пакет: [{}, {сравнить этот каталог}]
db.collection.update_many(
{ "branch_id": "BR5cc825dac42dac3aae49ff91" },
{ "$inc": {"inventory.$[item].batch.$[b].quantity": -50}},
array_filters= [
{"item.inventory_stock_id": "MED344"},
{"b.quantity": { "$gte": 50}}
]
)
Мой запрос задан Результат
"_id" : ObjectId("5e5bc292361b710c7727718e"),
"branch_id" : "BR5cc825dac42dac3aae49ff91",
"inventory" : [
{
"inventory_stock_id" : "MED344",
"stock_name" : "Anacin123",
"stock_point" : "27",
"stock_type" : "Medicine",
"batch" : [
{
"quantity" : 40,
"manuf_date" : "10-01-2020",
"exp_date" : "01-04-2020"
},
{
"quantity" : 10,
"manuf_date" : "15-02-2020",
"exp_date" : "03-03-2020"
}
]
}
]
}
Ожидаемый результат
{
"_id" : ObjectId("5e5bc292361b710c7727718e"),
"branch_id" : "BR5cc825dac42dac3aae49ff91",
"inventory" : [
{
"inventory_stock_id" : "MED344",
"stock_name" : "Anacin123",
"stock_point" : "27",
"stock_type" : "Medicine",
"batch" : [
{
"quantity" : 0,
"manuf_date" : "10-01-2020",
"exp_date" : "01-04-2020"
},
{
"quantity" : 50,
"manuf_date" : "15-02-2020",
"exp_date" : "03-03-2020"
}
]
}
]
}
Как мне получить ожидаемый результат, если кто-нибудь поможет мне