parse-server
parse-server copied to clipboard
`new Date()` in aggregation node.js
New Issue Checklist
- Report security issues confidentially.
- Any contribution is under this license.
- Before posting search existing issues.
Issue Description
Steps to reproduce
I have an Aggregation in mongo shell that works fine.
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.1and7.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
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.
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.
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 !
If you remove the date match, then you get the same output on both sides? Did you try { $toDate: new Date() }?
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()},
},
},
],
},
},
Could you write a failing test and submit a PR? The pipeline should be as simple as possible.
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?
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.