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

new Date() in aggregation node.js #9116

Open
mbfakourii opened this issue May 3, 2024 · 8 comments
Open

new Date() in aggregation node.js #9116

mbfakourii opened this issue May 3, 2024 · 8 comments
Labels
type:bug Impaired feature or lacking behavior that is likely assumed

Comments

@mbfakourii
Copy link
Member

mbfakourii commented May 3, 2024

New Issue Checklist

Issue Description

Steps to reproduce

I have an Aggregation in mongo shell that works fine.

image
But it doesn't output anything in node.js !

var pipeline = [
    {
        $match: {
            _p_enx: "Entrix$" + req.params[KEY_ENTRIX_ID],
        },
    },
    {
        $lookup: {
            from: "KeyLink",
            let: {
                tempPointer: {
                    $substr: ["$_p_klk", 8, -1],
                },
            },
            pipeline: [
                {
                    $match: {
                        $expr: {
                            $and: [
                                {
                                    $eq: ["$$tempPointer", "$_id"],
                                },
                            ],
                        },
                    },
                },
            ],
            as: "klk",
        },
    },
    {
        $match: {
            $or: [
                {
                    "klk.exp": {
                        $gt: new Date(),
                    },
                },
            ],
        },
    },
];

var query = new Parse.Query(EntrixKeyLink);

let responseAggregation = await query.aggregate(pipeline, {useMasterKey: true});

I think there is a problem in new Date().

Actual Outcome

Nothing is output !

Expected Outcome

It should output like the image above

Environment

Server

  • Parse Server version: 6.3.1 and 7.0.0
  • Operating system: Windows

Database

  • System (MongoDB or Postgres): MongoDB
  • Database version: 7.0.8

Client

  • SDK (iOS, Android, JavaScript, PHP, Unity, etc): API
  • SDK version: n/a

Logs

n/a

Copy link

parse-github-assistant bot commented May 3, 2024

Thanks for opening this issue!

  • 🚀 You can help us to fix this issue faster by opening a pull request with a failing test. See our Contribution Guide for how to make a pull request, or read our New Contributor's Guide if this is your first time contributing.

@mtrezza
Copy link
Member

mtrezza commented May 3, 2024

Please test with Parse Server 7, the best would be to add a PR with a failed test. We only fix security bugs in Parse Server 6.

@mtrezza mtrezza added the type:bug Impaired feature or lacking behavior that is likely assumed label May 3, 2024
@mbfakourii
Copy link
Member Author

Please test with Parse Server 7, the best would be to add a PR with a failed test. We only fix security bugs in Parse Server 6.

I tested in Parse Server 7.0.0 and the problem is not solved !

@mtrezza
Copy link
Member

mtrezza commented May 3, 2024

If you remove the date match, then you get the same output on both sides? Did you try { $toDate: new Date() }?

@mbfakourii
Copy link
Member Author

mbfakourii commented May 3, 2024

If you remove the date match, then you get the same output on both sides?

Yes

Did you try { $toDate: new Date() }?

I tried this method as below, but it didn't work !

{
    $match: {
        $or: [
            {
                "klk.exp": {
                    $gt: {$toDate: new Date()},
                },
            },
        ],
    },
},

@mtrezza
Copy link
Member

mtrezza commented May 3, 2024

Could you write a failing test and submit a PR? The pipeline should be as simple as possible.

@mbfakourii
Copy link
Member Author

mbfakourii commented May 4, 2024

Could you write a failing test and submit a PR? The pipeline should be as simple as possible.

What do I expect in this test?
what should I compare the pipeline output with?

@mtrezza
Copy link
Member

mtrezza commented May 4, 2024

Just could just add the necessary data to the DB to replicate the issue. You expect the query response to be what it should return.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type:bug Impaired feature or lacking behavior that is likely assumed
Projects
None yet
Development

No branches or pull requests

2 participants