Database

[{/** this is a document*/textfield1:{overridden:true,},page1:{textfield2:{overridden:true,},textfield3:{overridden:false,}},page2:{section1:{textfield4:{overridden:true,}}}},{/** this is a different document*/page1:{section1:{textfield1:{overridden:false,},textfield2:{overridden:false,}},section2:{textfield3:{overridden:true,}}}}]

Query

db.collection.aggregate([{$project:{_id:0,root:{$objectToArray:"$$ROOT"}}},{$unwind:{path:"$root",preserveNullAndEmptyArrays:true,}},{$unwind:{path:"$v",preserveNullAndEmptyArrays:true}},{$match:{$or:[{"root.k":"overridden","root.v":true},{"root.v":{$type:3}}]}},{$project:{root:{$cond:{if:{$eq:["object",{$type:"$root.v"}]},then:{$objectToArray:"$root.v"},else:"$root"}}}},{$unwind:{path:"$root",preserveNullAndEmptyArrays:true,}},{$unwind:{path:"$v",preserveNullAndEmptyArrays:true}},{$match:{$or:[{"root.k":"overridden","root.v":true},{"root.v":{$type:3}}]}},{$project:{root:{$cond:{if:{$eq:["object",{$type:"$root.v"}]},then:{$objectToArray:"$root.v"},else:"$root"}}}},{$unwind:{path:"$root",preserveNullAndEmptyArrays:true,}},{$unwind:{path:"$v",preserveNullAndEmptyArrays:true}},{$match:{$or:[{"root.k":"overridden","root.v":true},{"root.v":{$type:3}}]}},{$project:{root:{$cond:{if:{$eq:["object",{$type:"$root.v"}]},then:{$objectToArray:"$root.v"},else:"$root"}}}},{$unwind:{path:"$root",preserveNullAndEmptyArrays:true,}},{$unwind:{path:"$v",preserveNullAndEmptyArrays:true}},{$match:{$or:[{"root.k":"overridden","root.v":true},{"root.v":{$type:3}}]}},{$project:{root:{$cond:{if:{$eq:["object",{$type:"$root.v"}]},then:{$objectToArray:"$root.v"},else:"$root"}}}},{$match:{"root.k":"overridden","root.v":true}},{$count:"overridden"}])

Result