Проверка наличия данных в коллекции mongodb в goLang? - PullRequest
0 голосов
/ 30 января 2020

Если я хочу проверить, существует ли в коллекции хотя бы один документ, как бы я go сделал это в GoLang?

1 Ответ

1 голос
/ 30 января 2020

Самый эффективный способ проверить, существуют ли документы в коллекции, - это использовать функцию EstimatedDocumentCount в коллекции, поскольку она получает оценку из метаданных коллекции.

Вы можете сделать что-то вроде этого:

count, err := collection.EstimatedDocumentCount(context.Background())

Если фактическое количество документов в собрании важно и вам нужно больше, чем просто оценка, имеет смысл заглянуть в структуру агрегации MongoDB.

Вы можете сделать что-то вроде это обертывание структуры агрегации:

count, err := collection.CountDocuments(ctx, bson.M{})
if err != nil {
    panic(err)
}
if count >= 1 {
    fmt.Println("Documents exist in this collection!")
}

Вы также можете попробовать что-то вроде следующего, если вы хотите использовать структуру агрегации напрямую:

cursor, err := episodesCollection.Aggregate(ctx, []bson.D{
    bson.D{{"$count", "mycount"}},
})
if err != nil {
    panic(err)
}
var counts []bson.M
cursor.All(ctx, &counts)
fmt.Println(counts[0]["mycount"])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...