mongodb - 减少特定文档上第一个找到的子元素的属性
问题描述
我有这个 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"
汽车数量更新为0
.
下次我运行查询时,数量"red"
和"green"
汽车将是0
,所以我应该减少"blue"
汽车数量。如果我多次运行查询,它应该减少"blue"
汽车0
,然后做同样的事情,"yellow"
直到它也达到0
最后,查询什么也不做。
解决方案
推荐阅读
- python - 如何使用远程 Firefox webdriver 下载文件?
- azure - 如何故意死信一条消息是 azure functions v2
- c# - 为什么 EF Core 不允许我创建没有主键的属性?
- r - 在 glm() 函数中编辑“术语”对象
- sql-server - 报表生成器:如何在文本框之间有统一的水平间隙?
- elasticsearch - Solr eDismax Lucene 查询问题
- r - 在 R 中解释奇怪的 Bland-Altman 情节
- python - 如何使用另一个脚本在不同目录中执行一个 python 脚本?
- javascript - 不考虑整个 dom 的 querySelector
- architecture - 干净的独立架构