<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 02:54:05 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>[SERVER-432] server side expansion of DBRefs</title>
                <link>https://jira.mongodb.org/browse/SERVER-432</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;Option to expand dbrefs (both styles) on the server.&lt;br/&gt;
How it would work with sharding is undetermined at this time.&lt;/p&gt;</description>
                <environment></environment>
        <key id="10902">SERVER-432</key>
            <summary>server side expansion of DBRefs</summary>
                <type id="2" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14711&amp;avatarType=issuetype">New Feature</type>
                                            <priority id="4" iconUrl="https://jira.mongodb.org/images/icons/priorities/minor.svg">Minor - P4</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="3">Duplicate</resolution>
                                        <assignee username="-1">Unassigned</assignee>
                                    <reporter username="eliot">Eliot Horowitz</reporter>
                        <labels>
                    </labels>
                <created>Fri, 20 Nov 2009 20:45:57 +0000</created>
                <updated>Fri, 17 Jul 2015 20:56:44 +0000</updated>
                            <resolved>Wed, 24 Jun 2015 21:23:29 +0000</resolved>
                                                                    <component>Usability</component>
                                        <votes>64</votes>
                                    <watches>38</watches>
                                                                                                                <comments>
                            <comment id="949844" author="ian@10gen.com" created="Wed, 24 Jun 2015 21:23:29 +0000"  >&lt;p&gt;Hi Eliot, thanks a lot for filing this feature request and my apologies for the time since it was last updated.&lt;/p&gt;

&lt;p&gt;I&apos;m going to close this as a Duplicate and link it to our upcoming $lookup feature - after careful consideration we&#8217;ve decided to provide users with the desired functionality via our aggregation pipeline.  Please follow along in &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-19095&quot; title=&quot;$lookup&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-19095&quot;&gt;&lt;del&gt;SERVER-19095&lt;/del&gt;&lt;/a&gt; for further details of the $lookup implementation.&lt;/p&gt;</comment>
                            <comment id="439457" author="rvanderfeer" created="Fri, 11 Oct 2013 08:35:46 +0000"  >&lt;p&gt;@bishwa shrestha: +1, you have exactly described my situation &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.mongodb.org/images/icons/emoticons/smile.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/p&gt;

&lt;p&gt;Seriously though;&lt;br/&gt;
I honestly don&apos;t understand how this is not receiving more votes, or why it&apos;s simply classified as a &apos;usability&apos; issue.&lt;br/&gt;
To me this seems like a major feature for the product, or even a new class of product, and it has been a showstopper for using Mongo several times.&lt;/p&gt;

&lt;p&gt;After almost 4 years it seems this is just not going to get any attention, perhaps someone on the dev team can comment so we can understand?&lt;/p&gt;</comment>
                            <comment id="439454" author="awsiv" created="Fri, 11 Oct 2013 08:17:16 +0000"  >&lt;p&gt;@Hatch: +1, you have exactly described my situation&lt;/p&gt;</comment>
                            <comment id="438776" author="hatch" created="Thu, 10 Oct 2013 12:00:49 +0000"  >&lt;p&gt;In looking at MongoDB, especially reading the company tutorials and examples of &quot;real-world&quot; implementation strategies, they have examples of many types of implementations from blogs to inventory management where, often with quite a lot of work, you can structure your data in such a way that your application needs only to make a single request for a single document to provide a response to a user request.&lt;/p&gt;

&lt;p&gt;On my attempts to replicate these examples however, time and time again I find that while the examples work as is, the moment you try to add a tiny piece of additional functionality (simple things commonly seen in similar systems in the wild) you start hitting walls that require radical redesign of your data models, if you can even figure out a way to implement the feature. You end up with a flexible data model, but a very rigid feature set.&lt;/p&gt;

&lt;p&gt;In every system I&apos;ve tried so far I&apos;ve started off with pure MongoDB, eventually added a secondary database, usually a traditional RDBMS, to handle some complex relational/transactional data which is then replicated to MongoDB. Little by little MongoDB becomes effectively a cache layer handling only &quot;lose-able&quot;, derived data with the important canonical data stored elsewhere. Which is fine I guess, and MongoDB&apos;s schema-free design makes this relatively easy to do without having to worry about keeping two schema sets synchronized.&lt;/p&gt;

&lt;p&gt;Still, my biggest grip right now is the lack of join-like operations in MongoDB. It seems like on one hand MongoDB says &quot;you don&apos;t need joins, just embed documents&quot;, but then turns around and talks about how cheap queries are and suggests making multiple calls to perform your own joins. The second approach is usually required...eventually. I am beginning to believe that nearly every non-trivial application does in fact need joins for its primary data set, even if it doesn&apos;t appear so at first glance. Unless the foreign side of the join is either completely static or owned solely by the primary document, you end up requiring periodic system-wide updates to lots and lots of documents.&lt;/p&gt;

&lt;p&gt;This feature would be a huge improvement for MongoDB, and if it performed well enough it would greatly expand the role MongoDB could play in serious applications.&lt;/p&gt;</comment>
                            <comment id="381967" author="vincent.noel" created="Tue, 16 Jul 2013 09:07:28 +0000"  >&lt;p&gt;As a user of Mongodb for big projects, This feature seems very important to me.&lt;/p&gt;

&lt;p&gt;It&apos;s an improvement in usability, but it&apos;s the kind of improvements that change an interesting tool into a must have tool, a fairly used tool into a standard.&lt;/p&gt;

&lt;p&gt;Mongodb use will be simpler, faster and more agile. Not only the queries since even the aggregation system will benefit from the feature. At a point in any project even a key/value oriented project has the need of such feature, and it&apos;s a real pain to do multiple queries or do complex and costly agregation just to retrieve obvious informations.&lt;/p&gt;

&lt;p&gt;I&apos;d like to be able to find the logs of users created since last week without going through the whole database in javascript or to make complex and &quot;hack like&quot; queries sequence to obtain such a simple thing. The other option of duplicating every information you might need is not feasible, you can&apos;t possibly know in advance all the information you will need (either for application logic or trace analysis), and adding them once you need them is just a pain and will result in a useless increase of the space taken by the data and what if the data duplicated change?&lt;br/&gt;
db.logs.find({&quot;_user.createdAt&quot;: {$gt: myDate}}, {&apos;populate&apos;: {_user: 1}});&lt;br/&gt;
Would be great, formidable, maybe even wonderful.&lt;/p&gt;

&lt;p&gt;Because I&apos;ve got a game, and I banned users for cheating, and i need to go through the logs to find a way to detect the cheaters. I&apos;d like to get all logs of users that are banned right now.&lt;br/&gt;
db.logs.find({&quot;_user.banned&quot;: {$exists: 1}}, {&apos;populate&apos;: {_user: 1}});&lt;/p&gt;

&lt;p&gt;Even adding deep population:&lt;br/&gt;
db.logs.find({&quot;_user.banned&quot;: {$exists: 1}, &quot;_user.guild.name&quot;: &quot;the greatest guild of all time&quot;}, {&apos;populate&apos;: {_user: 1, &quot;_user._guild&quot;: 1}});&lt;/p&gt;

&lt;p&gt;...etc&lt;br/&gt;
I&apos;m not into the development of mongodb, so maybe i&apos;m wrong, but it does not sounds too complicated for me and the benefit sounds really great.&lt;/p&gt;

</comment>
                            <comment id="19830" author="colinmollenhour" created="Fri, 29 Oct 2010 15:39:34 +0000"  >&lt;p&gt;Syntax proposal:&lt;/p&gt;

&lt;p&gt;db.posts.find({_id:1}, {&apos;$refs&apos;: {author: 1}}) // expand using author field as a dbref&lt;br/&gt;
db.posts.find({_id:1}, {&apos;$refs&apos;: {author: &apos;users&apos;}}) // expand using author field as _id for users collection&lt;/p&gt;</comment>
                            <comment id="12974" author="eliot" created="Mon, 15 Mar 2010 09:45:42 +0000"  >&lt;p&gt;not as designed - since you don&apos;t know which collection an _id belongs&lt;/p&gt;</comment>
                            <comment id="12973" author="chrischen21" created="Mon, 15 Mar 2010 01:23:02 +0000"  >&lt;p&gt;Could this also support expanding just an ObjectId as well?&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10010">
                    <name>Duplicate</name>
                                            <outwardlinks description="duplicates">
                                        <issuelink>
            <issuekey id="212584">SERVER-19095</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is duplicated by">
                                        <issuelink>
            <issuekey id="217413">SERVER-19476</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="11504">SERVER-745</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="39662">SERVER-5937</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="12794">SERVER-1632</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>8.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Mon, 15 Mar 2010 01:23:02 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        8 years, 34 weeks ago
    
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18254" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Dependencies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[]]></customfieldvalue>


                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_15850" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10057" key="com.atlassian.jira.toolkit:lastusercommented">
                        <customfieldname>Last comment by Customer</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>true</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10056" key="com.atlassian.jira.toolkit:lastupdaterorcommenter">
                        <customfieldname>Last commenter</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>sam.kleinman</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            8 years, 34 weeks ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10000" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Old_Backport</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10000"><![CDATA[No]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>awsiv</customfieldvalue>
            <customfieldvalue>chrischen21</customfieldvalue>
            <customfieldvalue>colinmollenhour</customfieldvalue>
            <customfieldvalue>eliot</customfieldvalue>
            <customfieldvalue>hatch</customfieldvalue>
            <customfieldvalue>ian@mongodb.com</customfieldvalue>
            <customfieldvalue>rvanderfeer</customfieldvalue>
            <customfieldvalue>vincent.noel</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hrpuj3:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hrfzsn:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10558" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>6348</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_23361" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Requested By</customfieldname>
                        <customfieldvalues>
                                

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10053" key="com.atlassian.jira.ext.charting:timeinstatus">
                        <customfieldname>Time In Status</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_22870" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Triagers</customfieldname>
                        <customfieldvalues>
                                

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_14350" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>serverRank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hriwhz:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                    </customfields>
    </item>
</channel>
</rss>