Lỗi có khá nhiều ý nghĩa vì bạn không thể hành động trên hai thứ của cùng một "đường dẫn" trong cùng một thao tác cập nhật. Hai toán tử bạn đang sử dụng không xử lý tuần tự như bạn nghĩ.
Tuy nhiên, bạn có thể thực hiện việc này với "tuần tự" như bạn có thể thực hiện với API hoạt động "hàng loạt" hoặc dạng cập nhật "hàng loạt" khác. Tất nhiên là có lý do và ngược lại:
var bulk = db.coll.initializeOrderedBulkOp();
bulk.find({ "tags": 1 }).updateOne({ "$addToSet": { "tags": 2 } });
bulk.find({ "tags": 1 }).updateOne({ "$pull": { "tags": 1 } });
bulk.execute();
Không phải là một đảm bảo rằng không có gì khác sẽ cố gắng sửa đổi, nhưng nó gần như bạn sẽ nhận được hiện tại.
Đồng thời xem lệnh "cập nhật" thô với nhiều tài liệu.