使用Golang更新MongoDB中没有循环的文档

时间:2017-08-28 11:19:47

标签: mongodb algorithm go

我有一个收集器模块,每隔30秒就会拉一个远程API。 这给了我一个在MongoDB数据库中插入或更新的对象列表。

{
   "id" : "oulkhhvoiupokb",
   "name" : "test1",
   "status" : "OPEN"
},
{
   "id" : "oulkhhvoisksbsjkkb",
   "name" : "test2",
   "status" : "CLOSED"
}

实际上,我只收集具有OPEN状态的对象。并且通过循环,我将对象的其余部分设置为CLOSED(因为它们不是OPEN)。 但是在将来,它会花费很多时间,因为对象的不会增长。

我使用Golang和MGO包。

有没有办法更快更清洁呢?像为Mongo文档设置基本字段值的东西?

为了解释它,当我将OPEN对象插入数据库时​​,所有其他已经在数据库中的对象必须是CLOSED。 Mongo可以做到吗?

感谢。

1 个答案:

答案 0 :(得分:0)

解决方案是使用func (c *Collection) UpdateAll(selector interface{}, update interface{}) (info *ChangeInfo, err error)$nin用于选择器,$set用于更新。