Question: Is there a way to find a property in **any** document? For example I have the Users,Clients,Students collections and I want to return all of the documents that have {first\_name : 'John'}.

Answer: 
Given a list of collection names and a query document, you can construct your query in such a way that you can use a loop that will iterate and query each collection. Within the loop you can add the results of each query to a final array which will have all the documents from the collections that match the query.

Take for example, this mongo shell script will iterate the `collectionList`, append the results of the `find()` query for each collection to a results array:

```
var results = [],
    collectionList = ["users", "clients", "students"],
    query = { "first_name": "John" };

collectionList.forEach(function (collectionName){
    var result = db.getCollection(collectionName).find(query).toArray();
    results = results.concat(result);
});

printjson(results);

```

---

If you don't know the names of all the collections beforehand then you can use the shell method **[`db.getCollectionNames()`](https://docs.mongodb.com/manual/reference/method/db.getCollectionNames/)** that returns a list of the collection names:

```
var results = [],
    collectionList = db.getCollectionNames(),
    query = { "first_name": "John" };

collectionList.forEach(function (collectionName){
    var result = db.getCollection(collectionName).find(query).toArray();
    results = results.concat(result);
});

printjson(results);

```
db.collection.find() should work fine.
The find() method with no parameters returns all documents from a collection and returns all fields for the documents. <https://docs.mongodb.com/manual/reference/method/db.collection.find/>