Database

db={"A":[{"_id":ObjectId("5f67883478d0182ebcc2fc31"),"data":"god"},{"_id":ObjectId("5f67883478d0182ebcc2fc30"),"data":"demon"}],"B":[{"_id":ObjectId("5f6797b578d0182ebcc2fc35"),"title":"Book D","description":"blah blah"},{"_id":ObjectId("5f67887178d0182ebcc2fc34"),"title":"Book C","description":"this book is about a dog."},{"_id":ObjectId("5f67887178d0182ebcc2fc33"),"title":"Book B","description":"this book is about a god from Greek."},{"_id":ObjectId("5f67887178d0182ebcc2fc32"),"title":"Book A","description":"this book is about a demon."}]}

Query

db.A.aggregate([{$project:{_id:0,data:1}},{$lookup:{from:"B",let:{word:"$data"},pipeline:[{$match:{$expr:{$regexMatch:{input:"$description",regex:"$$word"}}}},{$project:{_id:1}}],as:"found"}},{$group:{_id:null,ids:{$addToSet:{$arrayElemAt:["$found",0]}}}},{$set:{ids:{$map:{input:"$ids",in:"$$this._id"}}}},{$lookup:{from:"B",let:{found_ids:"$ids"},pipeline:[{$match:{$expr:{$not:{$in:["$_id","$$found_ids"]}}}}],as:"docs"}},{$unwind:"$docs"},{$replaceWith:"$docs"}])

Result