<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 08:34:09 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>MongoDB Jira</title>
    <link>https://jira.mongodb.org</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>9.7.1</version>
        <build-number>970001</build-number>
        <build-date>13-04-2023</build-date>
    </build-info>


<item>
            <title>[GODRIVER-413] Implement Improved BSON Design</title>
                <link>https://jira.mongodb.org/browse/GODRIVER-413</link>
                <project id="14289" key="GODRIVER">Go Driver</project>
                    <description>&lt;p&gt;Implement the improved BSON design for the Go driver. This includes an easy path for users to upgrade from &lt;tt&gt;mgo/bson&lt;/tt&gt; to &lt;tt&gt;mongo-go-driver/bson&lt;/tt&gt;.&lt;/p&gt;</description>
                <environment></environment>
        <key id="541629">GODRIVER-413</key>
            <summary>Implement Improved BSON Design</summary>
                <type id="2" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14711&amp;avatarType=issuetype">New Feature</type>
                                            <priority id="3" iconUrl="https://jira.mongodb.org/images/icons/priorities/major.svg">Major - P3</priority>
                        <status id="6" iconUrl="https://jira.mongodb.org/images/icons/statuses/closed.png" description="The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.">Closed</status>
                    <statusCategory id="3" key="done" colorName="success"/>
                                    <resolution id="9">Done</resolution>
                                        <assignee username="kris.brandow@mongodb.com">Kristofer Brandow</assignee>
                                    <reporter username="jeff.yemin@mongodb.com">Jeffrey Yemin</reporter>
                        <labels>
                            <label>beta</label>
                            <label>biconnector</label>
                    </labels>
                <created>Wed, 9 May 2018 17:46:11 +0000</created>
                <updated>Fri, 21 Dec 2018 16:04:09 +0000</updated>
                            <resolved>Wed, 14 Nov 2018 19:44:59 +0000</resolved>
                                                    <fixVersion>0.0.18</fixVersion>
                                    <component>BSON</component>
                                        <votes>0</votes>
                                    <watches>5</watches>
                                                                                                                <comments>
                            <comment id="2062205" author="kris.brandow" created="Wed, 14 Nov 2018 19:44:11 +0000"  >&lt;p&gt;Code Reviews: &lt;a href=&quot;https://review.gerrithub.io/c/mongodb/mongo-go-driver/+/431549&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.gerrithub.io/c/mongodb/mongo-go-driver/+/431549&lt;/a&gt;&#160;and &lt;a href=&quot;https://review.gerrithub.io/c/mongodb/mongo-go-driver/+/433195&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.gerrithub.io/c/mongodb/mongo-go-driver/+/433195&lt;/a&gt;.&lt;/p&gt;</comment>
                            <comment id="2062155" author="xgen-internal-githook" created="Wed, 14 Nov 2018 19:22:22 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Kris Brandow&apos;, &apos;email&apos;: &apos;kris@mongodb.com&apos;, &apos;username&apos;: &apos;skriptble&apos;}
&lt;p&gt;Message: Redesign Document, Array, Element, and Value types&lt;/p&gt;

&lt;p&gt;Migration Notes:&lt;br/&gt;
The Document, Element, Value, and Array types have been redesign and&lt;br/&gt;
rewritten. They have been renamed Doc, Elem, Val, and Arr respectively.&lt;br/&gt;
And additional type, MDoc, has been created.&lt;/p&gt;

&lt;p&gt;The Value type no longer stores values as a slice of bytes,&lt;br/&gt;
instead opting for a compact 32byte representation that stores values&lt;br/&gt;
closer to native Go types. An empty Value is equivalent to a BSON Null.&lt;br/&gt;
All of the methods in this package will treat Value{} and&lt;br/&gt;
bson.Null() as the same.&lt;/p&gt;

&lt;p&gt;The Element type is much simpler and adds a key to a Value.&lt;/p&gt;

&lt;p&gt;The Document and Array types have been simplified, removing many of&lt;br/&gt;
their methods, and making them conceptually two different types, instead&lt;br/&gt;
of building an Array on top of a Document. Their methods have also been&lt;br/&gt;
updated to handle easier usage of Element and Value instances.&lt;/p&gt;

&lt;p&gt;The constructors have been removed and replaced with a simpler&lt;br/&gt;
construction system that uses functions. There is a symmetry between&lt;br/&gt;
these functions and the methods on the Value type. The input to the&lt;br/&gt;
constructor matches the output of the Value method, for example this is&lt;br/&gt;
valid: bson.Double(val.Double()).&lt;/p&gt;

&lt;p&gt;The BSON primitive types have been moved from the bson package to a new&lt;br/&gt;
package called primitive. The types that were (briefly) called&lt;br/&gt;
&lt;b&gt;Primitive are now call primitive.&lt;/b&gt;, e.g.&lt;br/&gt;
RegexPrimitive-&amp;gt;primitive.Regex.&lt;/p&gt;

&lt;p&gt;The Doc and MDoc types are functionally equivalents of D and M, but with&lt;br/&gt;
much higher type safety. Because Doc, MDoc, Arr, Elem, and Val form a&lt;br/&gt;
closed systems, and because it&apos;s not possible to create an invalid Val&lt;br/&gt;
type, Doc, MDoc, and Arr never return errors when Marshaling to BSON.&lt;br/&gt;
Both Doc and MDoc have depth traversal capabilities, so looking up a key&lt;br/&gt;
thats several subdocuments deep can be done with a single method call,&lt;br/&gt;
and in the case of MDoc can be done so in a higher performance manner.&lt;/p&gt;

&lt;p&gt;When migrating from Document to Doc, users should ensure they reassign&lt;br/&gt;
the return of Append, Prepend, and Set to the doc. With Document, one&lt;br/&gt;
could call Append and it would modify the original document, the new Doc&lt;br/&gt;
type does not operate in this manner and operates similar to a regular&lt;br/&gt;
slice.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/browse/GODRIVER-413&quot; title=&quot;Implement Improved BSON Design&quot; class=&quot;issue-link&quot; data-issue-key=&quot;GODRIVER-413&quot;&gt;&lt;del&gt;GODRIVER-413&lt;/del&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href=&quot;https://jira.mongodb.org/browse/GODRIVER-610&quot; title=&quot;Scope &amp;amp; Design Improved BSON Support&quot; class=&quot;issue-link&quot; data-issue-key=&quot;GODRIVER-610&quot;&gt;&lt;del&gt;GODRIVER-610&lt;/del&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Change-Id: I353a83b7c8f8c5fa0c2552de9ff8bc78d55c50bc&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-go-driver/commit/bc03cee70acb5c99b3eabea12b3e3cfe2e6f3232&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-go-driver/commit/bc03cee70acb5c99b3eabea12b3e3cfe2e6f3232&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2048349" author="xgen-internal-githook" created="Wed, 31 Oct 2018 23:19:29 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Kris Brandow&apos;, &apos;email&apos;: &apos;kris@mongodb.com&apos;, &apos;username&apos;: &apos;skriptble&apos;}
&lt;p&gt;Message: Add BSON Proxy support&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/browse/GODRIVER-413&quot; title=&quot;Implement Improved BSON Design&quot; class=&quot;issue-link&quot; data-issue-key=&quot;GODRIVER-413&quot;&gt;&lt;del&gt;GODRIVER-413&lt;/del&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Change-Id: I600841a34012adc3d3b95272bf36008212453576&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-go-driver/commit/745f04e02316fafe9e453005dd0095bdda3ce2b8&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-go-driver/commit/745f04e02316fafe9e453005dd0095bdda3ce2b8&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2036192" author="david.dana" created="Fri, 19 Oct 2018 17:42:56 +0000"  >&lt;p&gt;Do y&apos;all have a way us downstream folks can see what set of tickets comprises the version of the GODRIVER you&apos;re aiming to ship in December to support Cloud?&lt;/p&gt;</comment>
                            <comment id="1895972" author="jeff.yemin" created="Fri, 18 May 2018 22:19:24 +0000"  >&lt;p&gt;CC &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=kris.brandow&quot; class=&quot;user-hover&quot; rel=&quot;kris.brandow&quot;&gt;kris.brandow&lt;/a&gt;.&#160; I don&apos;t have any more details to add than what&apos;s in the description, but I think it makes sense to wait until after the encoder/decoder work in the main driver is completed before we start on this.&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;</comment>
                            <comment id="1895439" author="samk" created="Fri, 18 May 2018 16:09:12 +0000"  >&lt;p&gt;Would it possible to outline the work that you envision for this ticket? Is there a list of requirements or expectations that exist somewhere for this? &lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                            <outwardlinks description="depends on">
                                        <issuelink>
            <issuekey id="572145">GODRIVER-494</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="623508">GODRIVER-610</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is depended on by">
                                        <issuelink>
            <issuekey id="607609">GODRIVER-580</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="631879">GODRIVER-634</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10010">
                    <name>Duplicate</name>
                                                                <inwardlinks description="is duplicated by">
                                        <issuelink>
            <issuekey id="521809">GODRIVER-338</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="615753">GODRIVER-592</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="624312">GODRIVER-613</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="631537">GODRIVER-632</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_15850" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hr8az3:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10558" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>9223372036854775807</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            </customfields>
    </item>
</channel>
</rss>