sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur man tvingar MongoDB pullAll att bortse från dokumentbeställning

$pullAll operatorn är egentligen ett "speciellt fall" som mest var avsett för enstaka "skalära" arrayelement och inte för underdokument på det sätt du använder det.

Använd istället $pull som kommer att inspektera varje element och använda en $or villkor för dokumentlistorna:

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

På så sätt spelar det ingen roll vilken ordning fälten är i eller faktiskt leta efter en "exakt matchning" som den nuvarande $pullAll operationen faktiskt gör.




  1. I Flask konvertera form POST-objekt till en representation lämplig för mongodb

  2. MongoDB, ta bort objekt från array

  3. Mongodb x.509 "Inget verifierat ämnesnamn tillgängligt från klienten"

  4. Hur man får Laravel att fungera med Redis kluster på AWS