Nếu tôi hiểu đúng về bạn, bạn muốn xóa phần tử đầu tiên và cuối cùng của mảng nếu kích thước của mảng lớn hơn 3. Bạn có thể thực hiện việc này bằng cách sử dụng truy vấn findAndModify. Trong mongo shell, bạn sẽ sử dụng lệnh này:
db.collection.findAndModify({
query: { $where: "this.time.length > 3" },
update: { $pop: {time: 1}, $pop: {time: -1} },
new: true
});
Thao tác này sẽ tìm thấy tài liệu trong bộ sưu tập của bạn khớp với mệnh đề $ where. Trường $ where cho phép bạn chỉ định bất kỳ phương thức javascript hợp lệ nào. Xin lưu ý rằng nó chỉ áp dụng cập nhật cho tài liệu phù hợp đầu tiên.
Bạn cũng có thể muốn xem các tài liệu sau:
- http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-JavascriptExpressionsand%7B%7B%24where%7D%7D để biết thêm về mệnh đề $ where.
- http://www.mongodb.org/display/DOCS / Đang cập nhật # Đang cập nhật-% 24pop formore trên $ pop.
- http://www.mongodb.org/display/DOCS/findAndModify+ Lệnh để biết thêm thông tin về findAndModify.