Skip to content
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

Auto remove empty object in condition #13086

Closed
2 tasks done
adostal opened this issue Feb 26, 2023 · 1 comment
Closed
2 tasks done

Auto remove empty object in condition #13086

adostal opened this issue Feb 26, 2023 · 1 comment
Labels
confirmed-bug We've confirmed this is a bug in Mongoose and will fix it.
Milestone

Comments

@adostal
Copy link

adostal commented Feb 26, 2023

Prerequisites

  • I have written a descriptive issue title
  • I have searched existing issues to ensure the bug has not already been reported

Mongoose version

6.9.2

Node.js version

19.0.1

MongoDB server version

6

Typescript version (if applicable)

4.9.5

Description

I use casl.js in my project.
The conditions themselves are generated automatically from the @casl/mongoose library
The problem is that newer versions of mongoose remove the empty object that is sometimes part of the condition.
After updating mongoose from 6.7.5 to 6.9.2, the empty object started to be removed.

If it would be possible to set this behavior in the mongoose configuration, that would be great.

Steps to Reproduce

// query for all people (conditions are from casl.js - sometimes with empty object)
const people = PeopleModel.find({$or: [
  {},
  {type: "xxx"},
  .... other conditions
]})

Expected Behavior

In version 6.9.2 is finally condition without empty object {}:

condition: $or: [{"type": "xxx", ... other conditions}]

In version 6.7.5 is finally condition with empty object {}:

condition: $or: [{}, {"type": "xxx", ... other conditions}]
@vkarpov15
Copy link
Collaborator

This looks like it is caused by #12898 . We merged this issue because we thought that $or: [{}] is likely indicative of a potential bug where strictQuery removed some fields. However, you're right, there are some valid use cases for this behavior. We'll revert #12898 in 6.10.1.

@vkarpov15 vkarpov15 added this to the 6.10.1 milestone Feb 26, 2023
@IslandRhythms IslandRhythms added the confirmed-bug We've confirmed this is a bug in Mongoose and will fix it. label Feb 27, 2023
Say383 added a commit to Say383/cloud-code-samples that referenced this issue Mar 30, 2023
<p>This PR was automatically created by Snyk using the credentials of a
real user.</p><br /><h3>Snyk has created this PR to upgrade mongoose
from 6.8.0 to 6.10.2.</h3>

:information_source: Keep your dependencies up-to-date. This makes it
easier to fix existing vulnerabilities and to more quickly identify and
fix newly disclosed vulnerabilities when they affect your project.
<hr/>

- The recommended version is **11 versions** ahead of your current
version.
- The recommended version was released **23 days ago**, on 2023-03-07.


<details>
<summary><b>Release notes</b></summary>
<br/>
  <details>
    <summary>Package name: <b>mongoose</b></summary>
    <ul>
      <li>
<b>6.10.2</b> - <a
href="https://snyk.io/redirect/github/Automattic/mongoose/releases/tag/6.10.2">2023-03-07</a></br><p>chore:
release 6.10.2</p>
      </li>
      <li>
<b>6.10.1</b> - <a
href="https://snyk.io/redirect/github/Automattic/mongoose/releases/tag/6.10.1">2023-03-03</a></br><h1>6.10.1
/ 2023-03-03</h1>
<ul>
<li>fix: avoid removing empty query filters in <code>$and</code> and
<code>$or</code> <a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="1600029622"
data-permission-text="Title is private"
data-url="Automattic/mongoose#13086"
data-hovercard-type="issue"
data-hovercard-url="/Automattic/mongoose/issues/13086/hovercard"
href="https://snyk.io/redirect/github/Automattic/mongoose/issues/13086">#13086</a>
<a class="issue-link js-issue-link" data-error-text="Failed to load
title" data-id="1527162711" data-permission-text="Title is private"
data-url="Automattic/mongoose#12898"
data-hovercard-type="pull_request"
data-hovercard-url="/Automattic/mongoose/pull/12898/hovercard"
href="https://snyk.io/redirect/github/Automattic/mongoose/pull/12898">#12898</a></li>
<li>fix(schematype): fixed validation for required UUID field <a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1580768824" data-permission-text="Title is private"
data-url="Automattic/mongoose#13018"
data-hovercard-type="pull_request"
data-hovercard-url="/Automattic/mongoose/pull/13018/hovercard"
href="https://snyk.io/redirect/github/Automattic/mongoose/pull/13018">#13018</a>
<a
href="https://snyk.io/redirect/github/lpizzinidev">lpizzinidev</a></li>
<li>fix(types): add missing Paths generic param to
<code>Model.populate()</code> <a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="1594857812"
data-permission-text="Title is private"
data-url="Automattic/mongoose#13070"
data-hovercard-type="issue"
data-hovercard-url="/Automattic/mongoose/issues/13070/hovercard"
href="https://snyk.io/redirect/github/Automattic/mongoose/issues/13070">#13070</a></li>
<li>docs(migrating_to_6): added info about removal of reconnectTries and
reconnectInterval options <a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="1598402460"
data-permission-text="Title is private"
data-url="Automattic/mongoose#13083"
data-hovercard-type="pull_request"
data-hovercard-url="/Automattic/mongoose/pull/13083/hovercard"
href="https://snyk.io/redirect/github/Automattic/mongoose/pull/13083">#13083</a>
<a
href="https://snyk.io/redirect/github/lpizzinidev">lpizzinidev</a></li>
<li>docs: fix code in headers for migrating_to_5 <a class="issue-link
js-issue-link" data-error-text="Failed to load title"
data-id="1596634502" data-permission-text="Title is private"
data-url="Automattic/mongoose#13077"
data-hovercard-type="pull_request"
data-hovercard-url="/Automattic/mongoose/pull/13077/hovercard"
href="https://snyk.io/redirect/github/Automattic/mongoose/pull/13077">#13077</a>
<a href="https://snyk.io/redirect/github/hasezoey">hasezoey</a></li>
<li>docs: backport misc documentation changes into 6.x <a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="1600929090" data-permission-text="Title is private"
data-url="Automattic/mongoose#13091"
data-hovercard-type="pull_request"
data-hovercard-url="/Automattic/mongoose/pull/13091/hovercard"
href="https://snyk.io/redirect/github/Automattic/mongoose/pull/13091">#13091</a>
<a href="https://snyk.io/redirect/github/hasezoey">hasezoey</a></li>
</ul>
      </li>
      <li>
<b>6.10.0</b> - <a
href="https://snyk.io/redirect/github/Automattic/mongoose/releases/tag/6.10.0">2023-02-22</a></br><h1>6.10.0
/ 2023-02-22</h1>
<ul>
<li>feat: upgrade to mongodb driver 4.14.0 <a class="issue-link
js-issue-link" data-error-text="Failed to load title"
data-id="1585923903" data-permission-text="Title is private"
data-url="Automattic/mongoose#13036"
data-hovercard-type="pull_request"
data-hovercard-url="/Automattic/mongoose/pull/13036/hovercard"
href="https://snyk.io/redirect/github/Automattic/mongoose/pull/13036">#13036</a></li>
<li>feat: added Schema.prototype.omit() function <a class="issue-link
js-issue-link" data-error-text="Failed to load title"
data-id="1554538683" data-permission-text="Title is private"
data-url="Automattic/mongoose#12939"
data-hovercard-type="pull_request"
data-hovercard-url="/Automattic/mongoose/pull/12939/hovercard"
href="https://snyk.io/redirect/github/Automattic/mongoose/pull/12939">#12939</a>
<a class="issue-link js-issue-link" data-error-text="Failed to load
title" data-id="1552196285" data-permission-text="Title is private"
data-url="Automattic/mongoose#12931"
data-hovercard-type="issue"
data-hovercard-url="/Automattic/mongoose/issues/12931/hovercard"
href="https://snyk.io/redirect/github/Automattic/mongoose/issues/12931">#12931</a>
<a
href="https://snyk.io/redirect/github/lpizzinidev">lpizzinidev</a></li>
<li>feat(index): added createInitialConnection option to Mongoose
constructor <a class="issue-link js-issue-link" data-error-text="Failed
to load title" data-id="1580784101" data-permission-text="Title is
private" data-url="Automattic/mongoose#13021"
data-hovercard-type="pull_request"
data-hovercard-url="/Automattic/mongoose/pull/13021/hovercard"
href="https://snyk.io/redirect/github/Automattic/mongoose/pull/13021">#13021</a>
<a class="issue-link js-issue-link" data-error-text="Failed to load
title" data-id="1564821311" data-permission-text="Title is private"
data-url="Automattic/mongoose#12965"
data-hovercard-type="issue"
data-hovercard-url="/Automattic/mongoose/issues/12965/hovercard"
href="https://snyk.io/redirect/github/Automattic/mongoose/issues/12965">#12965</a>
<a
href="https://snyk.io/redirect/github/lpizzinidev">lpizzinidev</a></li>
</ul>
      </li>
      <li>
        <b>6.9.3</b> - 2023-02-22
      </li>
      <li>
        <b>6.9.2</b> - 2023-02-16
      </li>
      <li>
        <b>6.9.1</b> - 2023-02-06
      </li>
      <li>
        <b>6.9.0</b> - 2023-01-25
      </li>
      <li>
        <b>6.8.4</b> - 2023-01-17
      </li>
      <li>
        <b>6.8.3</b> - 2023-01-06
      </li>
      <li>
        <b>6.8.2</b> - 2022-12-28
      </li>
      <li>
        <b>6.8.1</b> - 2022-12-19
      </li>
      <li>
        <b>6.8.0</b> - 2022-12-05
      </li>
    </ul>
from <a
href="https://snyk.io/redirect/github/Automattic/mongoose/releases">mongoose
GitHub release notes</a>
  </details>
</details>


<details>
  <summary><b>Commit messages</b></summary>
  </br>
  <details>
    <summary>Package name: <b>mongoose</b></summary>
    <ul>
<li><a
href="https://snyk.io/redirect/github/Automattic/mongoose/commit/d1d09aba302559a10675c4a4bf5f1836155ddabb">d1d09ab</a>
chore: release 6.10.2</li>
<li><a
href="https://snyk.io/redirect/github/Automattic/mongoose/commit/87592672b7cd33510124d3bcc4c88a48b3419934">8759267</a>
docs: quick improvement to &#x60;Model.init()&#x60; docs re: #13054</li>
<li><a
href="https://snyk.io/redirect/github/Automattic/mongoose/commit/b8ed1d987093db42fe5f5d4327f690b4804ad9ac">b8ed1d9</a>
Merge pull request #13135 from Automattic/vkarpov15/gh-13003</li>
<li><a
href="https://snyk.io/redirect/github/Automattic/mongoose/commit/978b49d2e63abb580d01169fe5bbee0688e112c3">978b49d</a>
test: make #13052 test more explicit with debug usage</li>
<li><a
href="https://snyk.io/redirect/github/Automattic/mongoose/commit/c45f67d42048b723a89ae4cacb57c419ce4ca6e3">c45f67d</a>
test: make #13052 test consistent with others</li>
<li><a
href="https://snyk.io/redirect/github/Automattic/mongoose/commit/5af7c8c7ce4040fea42a546a1a2cfaae3d5dfdd9">5af7c8c</a>
test: add test coverage for #13043 to show that issue is fixed by #13003
fix</li>
<li><a
href="https://snyk.io/redirect/github/Automattic/mongoose/commit/da04458f9ed60bfa5c563dfd57150067275e7096">da04458</a>
fix(document): avoid setting array default if document array projected
out by sibling projection</li>
<li><a
href="https://snyk.io/redirect/github/Automattic/mongoose/commit/a706bc33f78bd0a8f480e017a6987dc9dddca45c">a706bc3</a>
Merge pull request #13133 from Automattic/vkarpov15/doc-array-path</li>
<li><a
href="https://snyk.io/redirect/github/Automattic/mongoose/commit/060c88965ebf3f6240f7794545db42bd0263c96a">060c889</a>
fix(documentarray): set correct document array path if making map of
document arrays</li>
<li><a
href="https://snyk.io/redirect/github/Automattic/mongoose/commit/a9a838cbe153dea48fb47dbb38d5c01afba208e4">a9a838c</a>
Merge pull request #13124 from lorand-horvath/patch-9</li>
<li><a
href="https://snyk.io/redirect/github/Automattic/mongoose/commit/7764bf7a0f0d9f24a47b0ca1d78a61766ae7a36f">7764bf7</a>
6.x should still support node 12</li>
<li><a
href="https://snyk.io/redirect/github/Automattic/mongoose/commit/f72c26d833a3b8a4b96403d77129d1c594b8f482">f72c26d</a>
chore: release 6.10.1</li>
<li><a
href="https://snyk.io/redirect/github/Automattic/mongoose/commit/57ecacf54d74fac1e4b8b91e92e9593235d915e0">57ecacf</a>
chore: add npm script to release 6.x</li>
<li><a
href="https://snyk.io/redirect/github/Automattic/mongoose/commit/416784e8aab5a54da3ffce9c7d13e9d60e95b29b">416784e</a>
Merge pull request #13117 from
Automattic/IslandRhythms/paths-generic</li>
<li><a
href="https://snyk.io/redirect/github/Automattic/mongoose/commit/66d02350553a754122832e8ee903556e1c5f7398">66d0235</a>
fix tests, fix #13070</li>
<li><a
href="https://snyk.io/redirect/github/Automattic/mongoose/commit/b7417ba3389792b7b2ccaa89aa22274890693e60">b7417ba</a>
Update populate.test.ts</li>
<li><a
href="https://snyk.io/redirect/github/Automattic/mongoose/commit/fd367cc11fb20a6ad2563b25bdcd9ecfa05845fb">fd367cc</a>
fix: lint</li>
<li><a
href="https://snyk.io/redirect/github/Automattic/mongoose/commit/34a55882ef8755ec0ccefdc04abbab0eeed4a8e9">34a5588</a>
Add Path genereic</li>
<li><a
href="https://snyk.io/redirect/github/Automattic/mongoose/commit/7d2c511475fb4a36d8ffcdd30739af45cdde4d4e">7d2c511</a>
quick fix for search generation script</li>
<li><a
href="https://snyk.io/redirect/github/Automattic/mongoose/commit/e4f1e20880e086c5c57e8a7261b8f92b618196c7">e4f1e20</a>
chore: undo accidental package.json changes</li>
<li><a
href="https://snyk.io/redirect/github/Automattic/mongoose/commit/e6e37cbecc631d59a2d7bc86c59ecf895377aa38">e6e37cb</a>
chore: quick script fix</li>
<li><a
href="https://snyk.io/redirect/github/Automattic/mongoose/commit/f22be739d328c63454cec09adca728abd4b9eb7a">f22be73</a>
chore: quick script fix</li>
<li><a
href="https://snyk.io/redirect/github/Automattic/mongoose/commit/d80e6cac04519f3ccc4742d9eb713b58ccfcb777">d80e6ca</a>
chore: quick script fix</li>
<li><a
href="https://snyk.io/redirect/github/Automattic/mongoose/commit/99238c2019267b167b92c5d420b174df4aa76be4">99238c2</a>
chore: quick script fix</li>
    </ul>

<a
href="https://snyk.io/redirect/github/Automattic/mongoose/compare/82943da92ba6db7fc27846a63a5a46cd7df049a9...d1d09aba302559a10675c4a4bf5f1836155ddabb">Compare</a>
  </details>
</details>
<hr/>

**Note:** *You are seeing this because you or someone else with access
to this repository has authorized Snyk to open upgrade PRs.*

For more information: <img
src="https://api.segment.io/v1/pixel/track?data=eyJ3cml0ZUtleSI6InJyWmxZcEdHY2RyTHZsb0lYd0dUcVg4WkFRTnNCOUEwIiwiYW5vbnltb3VzSWQiOiJiNGU3YzFlNC0zMzE2LTQ3ZmItYjczMy1jYTBjNTM4M2NlYzkiLCJldmVudCI6IlBSIHZpZXdlZCIsInByb3BlcnRpZXMiOnsicHJJZCI6ImI0ZTdjMWU0LTMzMTYtNDdmYi1iNzMzLWNhMGM1MzgzY2VjOSJ9fQ=="
width="0" height="0"/>

🧐 [View latest project
report](https://app.snyk.io/org/say383/project/063a08f4-06ac-4efa-a1ca-f6fa23cf21b4?utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr)

🛠 [Adjust upgrade PR
settings](https://app.snyk.io/org/say383/project/063a08f4-06ac-4efa-a1ca-f6fa23cf21b4/settings/integration?utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr)

🔕 [Ignore this dependency or unsubscribe from future upgrade
PRs](https://app.snyk.io/org/say383/project/063a08f4-06ac-4efa-a1ca-f6fa23cf21b4/settings/integration?pkg&#x3D;mongoose&amp;utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr#auto-dep-upgrades)

<!---
(snyk:metadata:{"prId":"b4e7c1e4-3316-47fb-b733-ca0c5383cec9","prPublicId":"b4e7c1e4-3316-47fb-b733-ca0c5383cec9","dependencies":[{"name":"mongoose","from":"6.8.0","to":"6.10.2"}],"packageManager":"npm","type":"auto","projectUrl":"https://app.snyk.io/org/say383/project/063a08f4-06ac-4efa-a1ca-f6fa23cf21b4?utm_source=github&utm_medium=referral&page=upgrade-pr","projectPublicId":"063a08f4-06ac-4efa-a1ca-f6fa23cf21b4","env":"prod","prType":"upgrade","vulns":[],"issuesToFix":[],"upgrade":[],"upgradeInfo":{"versionsDiff":11,"publishedDate":"2023-03-07T20:47:44.757Z"},"templateVariants":[],"hasFixes":false,"isMajorUpgrade":false,"isBreakingChange":false,"priorityScoreList":[]})
--->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
confirmed-bug We've confirmed this is a bug in Mongoose and will fix it.
Projects
None yet
Development

No branches or pull requests

3 participants