MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Come forzare MongoDB pullAll a ignorare l'ordine dei documenti

Il $pullAll operatore è in realtà un "caso speciale" destinato principalmente a singoli elementi di array "scalari" e non a documenti secondari nel modo in cui lo stai utilizzando.

Usa invece $pull che ispezionerà ogni elemento e utilizzerà un $or condizione per gli elenchi di documenti:

db.streams.update(
    { "user": "user_name" },
    { "$pull": { "streams": { "$or": streamsB } }}
)

In questo modo non importa in quale ordine si trovino i campi o effettivamente cercare una "corrispondenza esatta" come l'attuale $pullAll l'operazione sta effettivamente facendo.