Wie das Maximum von sections.Id in unten Dokument erhalten, wo collection._id = einige ParameterMongoDB Abfrage max von Feld innerhalb Array zu bekommen
{
"_id" : ObjectId("571c5c87faf473f40fd0317c"),
"name" : "test 1",
"sections" : [
{
"Id" : 1,
"name" : "first section"
},
{
"Id" : 2,
"name" : "section 2"
},
{
"Id" : 3,
"name" : "section 3"
}
}
I unter
db.collection.aggregate(
[
{
"$match": {
"_id": ObjectId("571c5c87faf473f40fd0317c")
}
},
{
"$group" : {
"_id" : "$_id",
"maxSectionId" : {"$max" : "$sections.Id"}
}
}
]);
versucht haben, aber Anstelle von max int single value gibt es ein Array aller IDs im Sektions-Array zurück.
Weitere gleiche Abfrage, wenn in node.js ausgeführt wird, wird ein leeres Array zurückgegeben.
Projekt mit $ wirft Ausnahme: ungültigen Operator '$ max', Code 15999 –
, welche Version von mongodb sind Sie using ... benutze in diesem Fall unwind, wie von @kakashi hatake gesagt, aber benutze es nach deiner Matchabfrage, um die Anzahl der unveränderten Dokumente zu begrenzen – kryshna
MongoDB Shell Version: 3.0.7. Ich brauche Max aller unbewaffneten Sektionen, aber einer bestimmten collection._id, für die Filter bereits angewendet wird, kann also keinen Filter auf sections.Id anwenden. –