MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Como forçar o MongoDB pullAll a desconsiderar a ordem do documento


O $pullAll O operador é realmente um "caso especial" destinado principalmente a elementos de matriz "escalares" únicos e não a subdocumentos da maneira que você o está usando.

Em vez disso, use $pull que inspecionará cada elemento e usará um $or condição para as listas de documentos:
db.streams.update(
    { "user": "user_name" },
    { "$pull": { "streams": { "$or": streamsB } }}
)

Dessa forma, não importa em qual ordem os campos estão ou, de fato, procure uma "correspondência exata" como o $pullAll atual operação está realmente fazendo.