Pokud vám rozumím správně, chcete odstranit první a poslední prvek pole, pokud je velikost pole větší než 3. Můžete to provést pomocí dotazu findAndModify. V mongo shell byste použili tento příkaz:
db.collection.findAndModify({
query: { $where: "this.time.length > 3" },
update: { $pop: {time: 1}, $pop: {time: -1} },
new: true
});
To by ve vaší sbírce našlo dokument, který odpovídá klauzuli $where. Pole $where vám umožňuje zadat jakoukoli platnou metodu javascriptu. Upozorňujeme, že aktualizace se vztahuje pouze na první odpovídající dokument.
Můžete se také podívat na následující dokumenty:
- http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-JavascriptExpressionsand%7B%7B%24where%7D%7D další informace o klauzuli $where.
- http://www.mongodb.org/display/DOCS /Updating#Updating-%24pop více na $pop.
- http://www.mongodb.org/display/DOCS/findAndModify+ Příkaz pro více informací findAndModify.