you may have confused local and foreign fields.
try localField:"parts" and foreignField:"_id" and see if it resolves correct.
if not, from your given data, it is possible your parts array does not hold actual IDs but just some strings that look like some ID. "ObjectID('AAA')" is a string as is it surrounded by double-quotes.
in this second case solution of this post may help. $lookup foreignField is ObjectId - Working with Data - MongoDB Developer Community Forums . Be careful though, if your IDs are stored as this quoted string "ObjectID('AAA')" you need to extract 'AAA' from them.
PS: I believe the author of that blog post has typos for some reason. He uses "_id": "ObjectId('AAA')" for a while and then "_id": ObjectID("AAAB"). note the double quotes around ObjectId function. The first one is just a string but the second is the representation of an Id value.