Vaše "secondArray" má strukturu vnořených prvků, takže při použití pozičního $
musíte ve svém dotazu identifikovat vnější prvek, který chcete porovnat. operátora v aktualizaci. V podstatě potřebujete něco takového:
bulk.find({
"_id": new mongo.ObjectID(req.session._id),
"secondArray._id": "7423"
}).update({
"$pull": {
"firstArray": { "_id": "153" },
"secondArray.$.firstArrayIds": 153
}
});
Takže ve skutečnosti existují „dvě“ hodnoty id, které musíte předat se svou žádostí kromě obecného ID dokumentu. I když je to vnořené, je to v pořádku, protože párujete pouze na "vnější" úrovni a pouze na jednom poli. Pokud jste se pokusili porovnat pozici na více než jednom poli, pak to s pozičním operátorem není možné.