<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 03:03:13 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-3498] Collection aliases</title>
                <link>https://jira.mongodb.org/browse/SERVER-3498</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;It would be nice to be able to create alias&apos;s/synonyms.  The use case would be to swap out collections and/or data movement activities.  For instance, fill up a collection with some data, then swap it into the spot where the application can see it.&lt;/p&gt;

&lt;p&gt;db.mycol.save(&lt;/p&gt;
{&quot;status&quot;:1}
&lt;p&gt;)&lt;br/&gt;
db.alias(&lt;/p&gt;
{mycol:myprodcol}
&lt;p&gt;)&lt;br/&gt;
db.myprodcol.find()&lt;/p&gt;
{status:1}
&lt;p&gt;db.mynewcol.save(&lt;/p&gt;
{&quot;status&quot;:0}
&lt;p&gt;)&lt;br/&gt;
db.alias(&lt;/p&gt;
{mynewcol:myprodcol}
&lt;p&gt;)&lt;br/&gt;
&amp;lt;locks for metadata swap&amp;gt;&lt;br/&gt;
db.myprodcol.find()&lt;/p&gt;
{status:0}
</description>
                <environment></environment>
        <key id="20251">SERVER-3498</key>
            <summary>Collection aliases</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="10038" iconUrl="https://jira.mongodb.org/images/icons/subtask.gif" description="">Backlog</status>
                    <statusCategory id="2" key="new" colorName="default"/>
                                    <resolution id="-1">Unresolved</resolution>
                                        <assignee username="backlog-query-execution">Backlog - Query Execution</assignee>
                                    <reporter username="kgorman">Kenny Gorman</reporter>
                        <labels>
                    </labels>
                <created>Thu, 28 Jul 2011 17:25:26 +0000</created>
                <updated>Mon, 28 Aug 2023 17:48:49 +0000</updated>
                                                                            <component>Storage</component>
                                        <votes>20</votes>
                                    <watches>21</watches>
                                                                                                                <comments>
                            <comment id="5663983" author="JIRAUSER1254095" created="Mon, 28 Aug 2023 17:48:49 +0000"  >&lt;p&gt;Having used MongoDB for 10+ years, I&apos;d love if I could hot rename some of my old collections by first creating an alias, then swapping the &quot;primary&quot; name. Would think MongoDB would have this feature by now.&lt;/p&gt;</comment>
                            <comment id="2933340" author="geert.bosch" created="Tue, 3 Mar 2020 22:08:53 +0000"  >&lt;p&gt;There is no way why (some) non-materialized views cannot be made writeable. Determining the columns (ahem, fields) of a view that are writeable, and whether a view is insertable is a well studied topic. Having a non-materialized view with empty pipeline writable would implement aliases. We can allow a &lt;tt&gt;$match&lt;/tt&gt;&#160;state by checking that a changed or inserted document matches. Then expand to projections etc. Even a union view can be insertable/modifiable as long as all sources have disjoint matches on them. At that point you can implement sharding using writable views.&lt;/p&gt;</comment>
                            <comment id="2918064" author="jan@apify.com" created="Fri, 28 Feb 2020 20:30:17 +0000"  >&lt;p&gt;Big +1 for this feature.&lt;/p&gt;

&lt;p&gt;As our production database at &lt;a href=&quot;https://apify.com&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;Apify&lt;/a&gt; evolves, we&apos;d like to fix some old bad naming decisions to keep the database tidy, maintainable and easy to understand for new engineers. With collection aliases, renaming the collections would be easy. Doing it now means a lot of engineering complexity and downtime for our users.&lt;/p&gt;</comment>
                            <comment id="1820222" author="asya" created="Thu, 1 Mar 2018 19:26:00 +0000"  >&lt;p&gt;Alias should be usable for reads and writes - in other words, transparent to the client.&lt;/p&gt;

&lt;p&gt;If the use case is for read-only then read-only views can address that - you can even redefine a view definition to point to a different underlying collection without any downtime (existing operations on previous definition will complete, but new ones will correctly read the new underlying collection).&lt;/p&gt;
</comment>
                            <comment id="1820212" author="geert.bosch" created="Thu, 1 Mar 2018 19:19:43 +0000"  >&lt;p&gt;This is implemented by read-only views:&lt;/p&gt;
&lt;p/&gt;
&lt;div id=&quot;syntaxplugin&quot; class=&quot;syntaxplugin&quot; style=&quot;border: 1px dashed #bbb; border-radius: 5px !important; overflow: auto; max-height: 30em;&quot;&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; width=&quot;100%&quot; style=&quot;font-size: 1em; line-height: 1.4em !important; font-weight: normal; font-style: normal; color: black;&quot;&gt;
		&lt;tbody &gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;  margin-top: 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;&amp;gt; db.x.insert({_id:1})&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;WriteResult({ &quot;nInserted&quot; : 1 })&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;&amp;gt; db.createView(&quot;y&quot;, &quot;x&quot;, [])&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;{ &quot;ok&quot; : 1 }&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;&amp;gt; db.y.find()&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   margin-bottom: 10px;  width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;{ &quot;_id&quot; : 1 }&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
			&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p/&gt;
&lt;p&gt;With a non-empty pipeline this can in particularly be useful for changes in the dataformat: you can see the same physical collection in both formats at the same time, allowing for backward compatibility.&lt;/p&gt;</comment>
                            <comment id="1705861" author="peter.vdc@gmail.com" created="Mon, 23 Oct 2017 09:03:54 +0000"  >&lt;p&gt;+1 for this feature. And it would be nice to have aliassen for databases as well. &lt;/p&gt;</comment>
                            <comment id="1424753" author="venkata.surapaneni@elastica.co" created="Thu, 3 Nov 2016 00:53:51 +0000"  >&lt;p&gt;Yes we use ES aliases a lot for index rollovers. I am requesting a same kind of feature in mongoDB that application should always r/w only through &quot;alias&quot; and the collections (sharded or unsharded) underlying the aliases can be added or removed atomically without changing any application DB connection string. this is useful for our monthly, quarterly collection rollovers for time-series data.&lt;/p&gt;

&lt;p&gt;+1&lt;/p&gt;</comment>
                            <comment id="1191573" author="slaurent" created="Thu, 3 Mar 2016 09:30:06 +0000"  >&lt;p&gt;+1&lt;/p&gt;</comment>
                            <comment id="954502" author="rmihael@gmail.com" created="Tue, 30 Jun 2015 14:32:39 +0000"  >&lt;p&gt;+1 for this feature. Implementing it will make long-term support for MongoDB deployments easier. In many cases it also allows to decouple applications from old data retention and archiving logic. Check ElasticSearch, they have tons of good use-cases for aliases.&lt;/p&gt;</comment>
                            <comment id="950410" author="andrewdoumaux" created="Thu, 25 Jun 2015 12:18:48 +0000"  >&lt;p&gt;I think this could be a very useful feature, and might be able to get around some of the issues associated with not being able to rename sharded collections&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10010">
                    <name>Duplicate</name>
                                                                <inwardlinks description="is duplicated by">
                                        <issuelink>
            <issuekey id="236413">SERVER-21161</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="90094">SERVER-10788</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>10.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                <customfield id="customfield_12751" key="com.atlassian.jira.plugin.system.customfieldtypes:multiselect">
                        <customfieldname>Assigned Teams</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="25125"><![CDATA[Query Execution]]></customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_13552" key="com.go2group.jira.plugin.crm:crm_generic_field">
                        <customfieldname>Case</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[[500A000000ZNyPFIA1]]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Thu, 25 Jun 2015 12:18:48 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        23 weeks, 2 days 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_10857" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>PM-764</customfieldvalue>
                        </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>shields@tablecheck.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            23 weeks, 2 days 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>AndrewDoumaux</customfieldvalue>
            <customfieldvalue>asya.kamsky@mongodb.com</customfieldvalue>
            <customfieldvalue>backlog-query-execution</customfieldvalue>
            <customfieldvalue>geert.bosch@mongodb.com</customfieldvalue>
            <customfieldvalue>jan@apify.com</customfieldvalue>
            <customfieldvalue>shields@tablecheck.com</customfieldvalue>
            <customfieldvalue>kgorman</customfieldvalue>
            <customfieldvalue>rmihael@gmail.com</customfieldvalue>
            <customfieldvalue>peter.vdc@gmail.com</customfieldvalue>
            <customfieldvalue>slaurent</customfieldvalue>
            <customfieldvalue>venkata.surapaneni@elastica.co</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hrouwn:</customfieldvalue>

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

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10558" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>6065</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_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|ht0q9j:</customfieldvalue>

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