<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Wed Feb 07 21:40: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>[CSHARP-1635] Create a filter builder method generic enough to allow multiple similar types to be used</title>
                <link>https://jira.mongodb.org/browse/CSHARP-1635</link>
                <project id="10041" key="CSHARP">C# Driver</project>
                    <description>&lt;p&gt;We have a collection that stores many object types. While they&apos;re all rooted around the same base class, we occasionally want AND together FilterDefinitions from multiple related classes. It would be great to have a generic FilterBuilder that would allow the Anding&apos; together of unique types of FilterDefinition types without getting angry.&lt;/p&gt;

&lt;p&gt;Previously we could&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;   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;Query.And(Query&amp;lt;Email&amp;gt;.EQ(linqdef), Query&amp;lt;PasswordEmail&amp;gt;.EQ(linqdef2))&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;and get back a basic IMongoQuery, on which we could do some further things like sorting, etc.&lt;/p&gt;

&lt;p&gt;This let us have a series of logic points and inject find parameters for different types and get the expected result. Given that multiple types can reside in one collection (and thus could be supported in 1 FilterDefinition), there should be a less rigid method for cases where this is the desired outcome.&lt;/p&gt;

&lt;p&gt;It would be useful for it to work when using the &quot;&amp;amp;&quot; or &quot;|&quot; methods as well.&lt;/p&gt;</description>
                <environment></environment>
        <key id="281461">CSHARP-1635</key>
            <summary>Create a filter builder method generic enough to allow multiple similar types to be used</summary>
                <type id="4" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14710&amp;avatarType=issuetype">Improvement</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="2">Won&apos;t Fix</resolution>
                                        <assignee username="-1">Unassigned</assignee>
                                    <reporter username="sallgeud">Chad Kreimendahl</reporter>
                        <labels>
                    </labels>
                <created>Thu, 21 Apr 2016 19:11:13 +0000</created>
                <updated>Tue, 17 May 2016 17:11:37 +0000</updated>
                            <resolved>Mon, 16 May 2016 17:30:18 +0000</resolved>
                                    <version>2.2.3</version>
                                                    <component>API</component>
                                        <votes>1</votes>
                                    <watches>1</watches>
                                                                                                                <comments>
                            <comment id="1266505" author="sallgeud" created="Tue, 17 May 2016 17:11:37 +0000"  >&lt;p&gt;In this event 1668 should work for us.... and PasswordEmail inherits from Email... which was what we wanted to get... the ability to query subtypes with ANDs&lt;/p&gt;</comment>
                            <comment id="1265130" author="craiggwilson" created="Mon, 16 May 2016 17:30:13 +0000"  >&lt;p&gt;Hi Chad,&lt;/p&gt;

&lt;p&gt;The only way this will work in the new API is for each type to have a common base class and couple that with &lt;a href=&quot;https://jira.mongodb.org/browse/CSHARP-1668&quot; title=&quot;Allow FilterDefinition OfType to allow for querying of inherited types with type safety in builder&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CSHARP-1668&quot;&gt;&lt;del&gt;CSHARP-1668&lt;/del&gt;&lt;/a&gt;. It is highly uncommon to store multiple unrelated items in a single collection and, if that happens to be the case, then using BsonDocument or simply &quot;object&quot; will be the only way to handle that.&lt;/p&gt;

&lt;p&gt;I&apos;m going to close this one as won&apos;t fix, but link it to 1668.&lt;/p&gt;

&lt;p&gt;Craig&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="286378">CSHARP-1668</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|hskocn:</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>