Database
[{_id:"ObjectId(1)",name:"data1",data:[{text:"a",value:1},{text:"b",value:2},{text:"c",value:3}]},{_id:"ObjectId(2)",name:"data2",data:[{text:"b",value:2},{text:"a",value:1},{text:"c",value:3}]},{_id:"ObjectId(3)",name:"data3",data:[{text:"c",value:3},{text:"a",value:1},{text:"b",value:2}]}]
Query
db.collection.aggregate([{$lookup:{from:"collection",let:{id:"$_id",data:"$data"},pipeline:[{$match:{$expr:{$and:[{$gt:["$_id","$$id"]}]}}},{$addFields:{same_size:{$eq:[{$size:"$data"},{$size:"$$data"}]},order1:{$map:{input:"$data",in:{$indexOfArray:["$data","$$this"]}}},order2:{$map:{input:"$data",in:{$indexOfArray:["$$data","$$this"]}}}}},{$match:{$expr:{$and:[{$eq:["$same_size",true]},{$not:{$in:[-1,"$order2"]}},{$ne:[{$reduce:{input:"$order1",initialValue:"",in:{$concat:["$$value",{$toString:"$$this"}]}}},{$reduce:{input:"$order2",initialValue:"",in:{$concat:["$$value",{$toString:"$$this"}]}}}]}]}}},{$unset:["order1","order2","same_size"]}],as:"differentOrder"}},{$match:{"differentOrder.0":{$exists:true}}}])