Database

[{_id:1,Name:"Doc1",Records:[{"RecordName":"Record A","State":1,"Properties":{"FLD1":"VAL1"}},{"RecordName":"Record B","State":1,"Properties":{"FLD2":"VAL3","FLD3":"VAL2"}}]},{_id:2,Name:"Doc2",Records:[{"RecordName":"Record A","State":1,"Properties":{"FLD1":"VAL2","FLD4":"VAL1","FLD5":"VAL6"}},{"RecordName":"Record C","State":1,"Properties":{"FLD1":"VAL1","FLD2":"VAL3"}}]},{_id:3,Name:"Doc3",Records:[{"RecordName":"Record B","State":0,"Properties":{"FLD2":"VAL2","FLD3":"VAL4","FLD4":"VAL5"}},{"RecordName":"Record C","State":1,"Properties":{"FLD3":"VAL2","FLD5":"VAL4"}}]},{_id:4,Name:"Doc4",Records:[{"RecordName":"Record A","State":1,"Properties":{"FLD2":"VAL2"}},{"RecordName":"Record C","State":1,"Properties":{"FLD3":"VAL3","FLD4":"VAL4"}}]}]

Query

db.collection.find({$or:[{"Records":{$not:{$elemMatch:{"RecordName":"Record A"}}}},{"Records.Properties.FLD1":{$exists:false}},{"Records":{$not:{$elemMatch:{"Properties.FLD1":"VAL2"}}}}]})

Result