猿问

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

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


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 值..基本上我只需要知道已经存储在集合中的对象,我不需要它自己


慕少森
浏览 248回答 3
3回答

叮当猫咪

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

弑天下

你必须使用 $exists语法:{ field: { $exists: } }更多细节http://docs.mongodb.org/manual/reference/operator/query/exists/

MYYA

在官方 Mongo 驱动程序中,您可以使用CountDocuments函数获取具有特定键的文档数:count, err := collection.CountDocuments(context.TODO(), bson.D{{"key", "value"}})
随时随地看视频慕课网APP

相关分类

Go
我要回答