So habe ich die folgende Aggregation und ich erhalte den Fehler ungültiger Operator $$ event.info.MongoDB - Invalid Operator - Aggregation
db.days.aggregate([
{
$match : { 'day' : 'March_1'}
},
{
$project:
{
_id:0,
day: 1,
events:
{
$filter:
{
input: '$events',
as: 'event',
cond:
{
$and:
[
{
$eq: ['$$event.year', '2002']
},
{
'$$event.info' : {$regex: '.*peseta.*'}
}
]
}
}
}
}
}
])
Ereignis ist ein Array mit Objekten des Typs
{
year : "x"
info : "y"
}
Könnten Sie mir bitte helfen, eine Erklärung einig?
Vielen Dank im Voraus!
Sie können mit '$ regex' in' nicht project' $ – styvane
Gibt es eine Abhilfe der Lage sein, eine zu verwenden, $ Regex wie Funktion in $ Projekt? –
Wie gesagt, gibt es kein "logisches" Gegenstück für einen Ausdruck "$ regex". In diesem Fall sollten Sie das Array "$ abwickeln" und dann '$ match' mit einem regulären Abfrageausdruck hinterher" abwickeln ". Ich rate auch dringend, dass Sie die gleiche Bedingung in Ihrem ursprünglichen '$ match' enthalten. Andernfalls wählen Sie nur Dokumente aus, bei denen Array-Elemente den Bedingungen möglicherweise nicht entsprechen. Es sei denn, Sie beabsichtigen natürlich, auch "leere" Arrays zurückzugeben. –