Wenn ich Sie richtig verstehe, möchten Sie das erste und letzte Element des Arrays entfernen, wenn die Größe des Arrays größer als 3 ist. Sie können dies tun, indem Sie die Abfrage findAndModify verwenden. In der Mongo-Shell würden Sie diesen Befehl verwenden:
db.collection.findAndModify({
query: { $where: "this.time.length > 3" },
update: { $pop: {time: 1}, $pop: {time: -1} },
new: true
});
Dies würde das Dokument in Ihrer Sammlung finden, das mit der $where-Klausel übereinstimmt. Das $where-Feld ermöglicht es Ihnen, eine beliebige gültige Javascript-Methode anzugeben. Bitte beachten Sie, dass die Aktualisierung nur auf das erste übereinstimmende Dokument angewendet wird.
Vielleicht möchten Sie sich auch die folgenden Dokumente ansehen:
- http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-JavascriptExpressionsand%7B%7B%24where%7D%7D für mehr über die $where-Klausel.
- http://www.mongodb.org/display/DOCS /Aktualisierung#Aktualisierung-%24pop früher auf $pop.
- http://www.mongodb.org/display/DOCS/findAndModify+ Befehl für mehr auf findAndModify.