使用gopkg.in/mgo.v2检查mongo中的对象是否存在

时间:2015-09-27 07:12:28

标签: mongodb go

我正在寻找方便的方法来检查对象是否已存在于集合中。现在,我找到的唯一方法是

type result interface{}
var res result

err := col.Find(bson.M{"title": "title1"}).One(&res)
if err != nil {
    if err.Error() == "not found" {
        log.Println("No such document")
    } else {
        log.Println("err occured", err)
    }
}

我不想创建变量res,如果对象存在,它可能是非常繁重的文档,有很多字段。 我希望有另一种方式,一些Check()函数将只返回bool值.. 基本上我只需要知道已经存储在集合中的对象,我不需要自己

3 个答案:

答案 0 :(得分:9)

count, err = collection.Find(bson.M{field: value}).Count()

答案 1 :(得分:6)

你必须使用$ exists

语法:{field:{$ exists:}}

了解更多详情

http://docs.mongodb.org/manual/reference/operator/query/exists/

答案 2 :(得分:1)

Official Mongo Driver中,您可以使用 CountDocuments 函数获取具有特定键的文档数:

count, err := collection.CountDocuments(context.TODO(), bson.D{{"key", "value"}})