私があなたを正しく理解している場合、配列のサイズが3より大きい場合は、配列の最初と最後の要素を削除する必要があります。これは、findAndModifyクエリを使用して行うことができます。 mongoシェルでは、次のコマンドを使用します:
db.collection.findAndModify({
query: { $where: "this.time.length > 3" },
update: { $pop: {time: 1}, $pop: {time: -1} },
new: true
});
これにより、コレクション内で$where句に一致するドキュメントが検索されます。$whereフィールドを使用すると、有効なjavascriptメソッドを指定できます。最初に一致したドキュメントにのみ更新が適用されることに注意してください。
次のドキュメントも参照することをお勧めします:
- http: //www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-JavascriptExpressionsand%7B%7B%24where%7D%7D $where句の詳細については。
- http://www.mongodb.org/display/DOCS / Updateting#Updating-%24pop $popの詳細
- http://www.mongodb.org/display/DOCS/findAndModify+コマンド 詳細については、findAndModifyを参照してください。