Самый эффективный способ проверить, существуют ли документы в коллекции, - это использовать функцию 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"])