NoSQL- automatically cache and update references to other documents as embedded
You may be looking for MongoDB Aggregation pipeline stage $lookup. 

Example: 
A collection orders contains the following documents:

{ "_id" : 1, "item" : "abc", "price" : 12, "quantity" : 2 }
{ "_id" : 2, "item" : "jkl", "price" : 20, "quantity" : 1 }


Another collection inventory contains the following documents:

{ "_id" : 1, "sku" : "abc", description: "product 1", "instock" : 120 }
{ "_id" : 4, "sku" : "jkl", description: "product 4", "instock" : 70 }


The following aggregation operation on the orders collection joins the documents from orders with the documents from the inventory collection

db.orders.aggregate([
    {
      $lookup:
        {
          from: "inventory",
          localField: "item",
          foreignField: "sku",
          as: "inventory_docs"
        }
   }
])


Example output: 

{
  "_id" : 1,
   "item" : "abc",
  "price" : 12,
  "quantity" : 2,
  "inventory_docs" : [
    { "_id" : 1, "sku" : "abc", description: "product 1", "instock" : 120 }
  ]
}


See more examples.

You could combine $lookup with $out stage to create another collection. See related $graphLookup