Tak, ale nie w sposób skalowalny (ponieważ do każdej kolekcji należy wykonać zapytanie). Jeśli masz 2 lub 3 kolekcje, może to być w porządku, ale... prawdopodobnie powinieneś przejrzeć swój projekt, aby dowiedzieć się, dlaczego to robisz. A tak przy okazji, dlaczego ty?
- Otrzymujesz listę wszystkich kolekcji w bazie danych.
- Pętla przez nie i zapytanie na podstawie _id
Przykładowy kod powłoki:
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);
});
daje:4f62635623809b75e6b8853c was found in test2