Il existe une approche qui vous permettra de le faire de manière atomique.
Vous devez intégrer userIds
dans RoomUsers
le recueil. Quelque chose comme
{ "userIds" : [ 1, 2, 3, 4 ], "roomId" : 1 }
Vous pouvez maintenant utiliser la requête de mise à jour ci-dessous.
db.RoomUsers.update( { roomId : 1, "userIds": { $not: {$size: 5 } } }, { $push : { "userIds":5 } } )