我有一个收集器模块,每隔30秒就会拉一个远程API。 这给了我一个在MongoDB数据库中插入或更新的对象列表。
{
"id" : "oulkhhvoiupokb",
"name" : "test1",
"status" : "OPEN"
},
{
"id" : "oulkhhvoisksbsjkkb",
"name" : "test2",
"status" : "CLOSED"
}
实际上,我只收集具有OPEN状态的对象。并且通过循环,我将对象的其余部分设置为CLOSED(因为它们不是OPEN)。 但是在将来,它会花费很多时间,因为对象的不会增长。
我使用Golang和MGO包。
有没有办法更快更清洁呢?像为Mongo文档设置基本字段值的东西?
为了解释它,当我将OPEN对象插入数据库时,所有其他已经在数据库中的对象必须是CLOSED。 Mongo可以做到吗?
感谢。
答案 0 :(得分:0)
解决方案是使用func (c *Collection) UpdateAll(selector interface{}, update interface{}) (info *ChangeInfo, err error)
,$nin
用于选择器,$set
用于更新。