Hallo,
ich hab ein Problem mit einer MongoDB Query.
Daten
Abfrage
Diese Abfrage funktioniert.
Wechselt man auf die auskommentierte Variante, die das Minimum auf Datum als ISODate behandelt, erhalte ich kein Ergebnis.
Unabhängig vom Typ müsste min immer funktionieren. (und ein Ergebnis liefern)
Hier im Playground:
ich hab ein Problem mit einer MongoDB Query.
Daten
Code:
[
{
_id: ObjectId("5af3107a40005af310aa8b50"),
jobs: [
{
created: ISODate("2024-07-17T05:27:29.071Z"),
created_str: "2024-07-17T05:27:29.071Z",
progress: 3
},
{
created: ISODate("2024-07-19T08:52:35.771Z"),
created_str: "2024-07-19T08:52:35.771Z",
progress: 0
},
{
progress: 0,
created: ISODate("2024-07-19T08:53:11.566Z"),
created_str: "2024-07-19T08:53:11.566Z"
}
]
}
]
Abfrage
Code:
db.collection.aggregate([
{
"$unwind": "$jobs"
},
{
"$group": {
"_id": "$_id",
"min": {
"$min": {
"$cond": [
{
"$eq": [
"$jobs.progress",
3
]
},
//"$jobs.created",
"$jobs.created_str",
ISODate("1971-01-01T00:00:00.000Z")
]
}
}
}
},
{
"$match": {
"$expr": {
"$or": [
{
"$ne": [
"$min",
ISODate("1971-01-01T00:00:00.000Z")
]
}
]
}
}
}
])
Wechselt man auf die auskommentierte Variante, die das Minimum auf Datum als ISODate behandelt, erhalte ich kein Ergebnis.
Unabhängig vom Typ müsste min immer funktionieren. (und ein Ergebnis liefern)
Hier im Playground:
Mongo playground
Mongo playground: a simple sandbox to test and share MongoDB queries online
mongoplayground.net
Zuletzt bearbeitet: