Có một cách tiếp cận sẽ cho phép bạn làm điều đó một cách nguyên tử.
Bạn nên nhúng userIds
vào RoomUsers
thu thập. Một cái gì đó giống như
{ "userIds" : [ 1, 2, 3, 4 ], "roomId" : 1 }
Bây giờ bạn có thể sử dụng truy vấn cập nhật bên dưới.
db.RoomUsers.update( { roomId : 1, "userIds": { $not: {$size: 5 } } }, { $push : { "userIds":5 } } )