Основываясь на документации , go.mongodb.org/mongo-driver
, по-видимому, не предоставляет способ автоматического увеличения идентификатора при загрузке документа, который не предоставил идентификатор.
type Document struct {
ID int `bson:"_id"`
Foo string `bson:"foo"`
}
document := &Document{Foo: "test"}
filter := bson.M{"_id": bson.M{"$eq": document.ID}}
update := bson.M{"$set": document}
res, err := mongoClient.Database(dbName).
Collection(collectionName).
UpdateOne(ctx, filter, update,
options.Update().SetUpsert(true))
В приведенном выше примере кода для ID будет установлено нулевое значение int, равное 0
, и оно будет сохранено в MongoDB как {"_id":0,"foo":"test"}
.
Существует ли чистый способ автоматического увеличения идентификатора, когда идентификатор не предоставляется с помощью mongo-driver
, без выполнения логики c самостоятельного отслеживания последнего идентификатора? Скажем, например, что в БД уже есть 5 документов, тогда выполнение приведенного выше кода будет сохраняться {"_id":6,"foo":"test"}
, если идентификатор не указан.