Sim, mas não de forma escalável (já que você deve consultar cada coleção). Se você tiver 2 ou 3 coleções, isso pode ser bom, mas... você provavelmente deve revisar seu design para descobrir por que está fazendo isso. Por que você está, aliás?
- Você obtém uma lista de todas as coleções no banco de dados.
- Você faz um loop por eles e consulta com base em _id
Código de shell de exemplo:
db.test1.save({});
db.test2.save({});
db.test3.save({});
db.test4.save({});
db.test5.save({});
db.test6.save({});
db.test2.findOne(); // gives: { "_id" : ObjectId("4f62635623809b75e6b8853c") }
db.getCollectionNames().forEach(function(collName) {
var doc = db.getCollection(collName).findOne({"_id" : ObjectId("4f62635623809b75e6b8853c")});
if(doc != null) print(doc._id + " was found in " + collName);
});
dá:
4f62635623809b75e6b8853c was found in test2