MongoDB查询实现:物品预测结果计数自动递增
解决方案
核心思路
用MongoDB的updateOne方法配合$inc操作符实现计数自动递增,同时通过upsert: true参数确保首次执行时自动创建目标文档,无需手动初始化。
具体操作语句
以下语句适用于MongoDB Shell或Node.js驱动(语法基本通用):
1. 单帧预测后的计数更新
当得到当前帧的预测结果Pred_classes[j](比如值为hammer),执行以下代码:
// 映射物品名到文档中的首字母大写字段 const fieldMap = { hammer: "Hammer", firearm: "Firearm", scissors: "Scissor" }; const targetField = fieldMap[Pred_classes[j]]; db.your_collection.updateOne( // 固定标识定位计数文档,可根据需求替换 { doc_type: "item_detection_counts" }, // 对目标物品的计数执行+1操作 { $inc: { [targetField]: 1 } }, // 文档不存在则自动创建 { upsert: true } );
2. 手动初始化文档(可选)
如果需要预先创建初始计数为0的文档,执行:
db.your_collection.insertOne({ doc_type: "item_detection_counts", Hammer: 0, Firearm: 0, Scissor: 0 });
注意事项
- 将
your_collection替换为你实际使用的集合名称。 doc_type: "item_detection_counts"是用来唯一定位计数文档的条件,可换成自定义ID或其他标识。$inc操作符会自动处理字段递增,即使字段初始不存在(配合upsert时会默认从0开始递增到1)。
内容的提问来源于stack exchange,提问作者Karan Tiwary
相关产品推荐
相关产品推荐

