如何向MongoDB中插入不重复的数据?
我现在的做法是:
c := database.C(collection_name)
count, _ := c.Find(bson.M{"mobile": mobile_num}).Count()
if count > 0 {
// do nothing
} else {
c.Insert(bson.M{"mobile": mobile_num})
}
虽然可以实现功能,但这种方法实在是太笨,有没有更好的方法?
共 5 个回复
kagilo
唯一索引。。
qkevin123
问题是在insert这条数据之前,我并不知到 _id 的值。
而且,实际项目中我需要insert的数据,并不包含 _id。
每一条数据包含三项内容,比如:mobile_num, name, time. 这三项数据组合在一起不能有重复的数据,但是单独的一项,比如mobile_num可能会有很多重复。
perki
一楼正解!
jimmykuu
这种实现并不笨,不用把问题复杂化了。
当然用1楼的唯一索引也可以,这样如果有重复值插入就报错了。
qkevin123
thanks very much.