У меня есть коллекция MongoDB, содержащая различные документы, подобные тем, которые я здесь показываю.
{
"_id" : ObjectId("5b0b456bf7a87830b4d20058"),
"type" : "vehicles"
"cars" : [
{
"color" : "red",
"amount" : 0
},
{
"color" : "green",
"amount" : 1
},
{
"color" : "blue",
"amount" : 3
},
{
"color" : "yellow",
"amount" : 2
}
]
}
Мне нужно найти документ на "_id" : ObjectId("5b0b456bf7a87830b4d20058")
и уменьшить на одну сумму "cars"
, не обращая внимания на его красный, зеленый, синий или желтый цвет. В этом примере "red"
машин уже 0
, поэтому я не должен уменьшать их, потому что у меня не может быть отрицательной суммы, поэтому при обновлении следует искать следующий элемент и обновлять количество "green"
машин до * 1009. *.
В следующий раз, когда я выполню запрос, количество машин "red"
и "green"
будет 0
, поэтому я должен уменьшить количество машин "blue"
. Если я выполню запрос больше раз, он должен уменьшить "blue"
автомобилей до 0
, а затем делать то же самое с "yellow"
, пока он тоже не достигнет 0
и, наконец, запрос ничего не сделает.