-
Notifications
You must be signed in to change notification settings - Fork 893
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
GODRIVER-852 Add documentation warning against the use of duplicate key names #614
GODRIVER-852 Add documentation warning against the use of duplicate key names #614
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. Let's also backport this to release/1.5 so the documentation shows up for the next released version in pkg.go.dev.
mongo/collection.go
Outdated
@@ -319,7 +319,9 @@ func (coll *Collection) insert(ctx context.Context, documents []interface{}, | |||
// | |||
// The document parameter must be the document to be inserted. It cannot be nil. If the document does not have an _id | |||
// field when transformed into BSON, one will be added automatically to the marshalled document. The original document | |||
// will not be modified. The _id can be retrieved from the InsertedID field of the returned InsertOneResult. | |||
// will not be modified. The _id can be retrieved from the InsertedID field of the returned InsertOneResult. The document | |||
// parameter should NOT contain duplicate key names, as that can result in undefined behavior from the server. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Would this apply to any CRUD function that results in a document getting inserted or replaced? (FindOneAndReplace
, ReplaceOne
, Replace
). As well as the insert models for bulk write.
If that is right, then I think we'd want to document them all, or just document bson.D
. My vote goes for just bson.D
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Discussed offline: it seems like overkill to document every CRUD function that results in a document getting inserted or replaced. Instead, we've opted to only warn against duplicate keys on bson.D
and in bson/doc.go
. Let me know what you think...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I prefer this for consistency.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Apologies for the delayed review. LGTM with a whitespace change!
No description provided.