Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-142

Read-only views over collection data.

    XMLWordPrintableJSON

Details

    • New Feature
    • Status: Closed
    • Major - P3
    • Resolution: Fixed
    • None
    • 3.3.12
    • Usability
    • None
    • Storage Execution
    • Fully Compatible

    Description

      Issue Status as of Aug 31, 2016

      ISSUE SUMMARY
      MongoDB 3.3.12 adds support for creating read-only views over existing collections or other views. To specify or define a view, MongoDB introduces the viewOn and pipeline options to the existing create command:

      db.runCommand( { create: <view>, viewOn: <source>, pipeline: <pipeline> } )
      

      In addition, there's also a mongo shell helper db.createView():

      db.createView(<view>, <source>, <pipeline>)

      Views are readable via the following commands:

      For more information views, as well as examples, please see the Read-only Views documentation.

      Original description

      Support for read-only views will consist of providing a mechanism for binding a namespace name to a (namespace name, query) pair, where the query might be a MongoDB query or an aggregation expression. For example, if you had a collection "housing.apartments", you might create a view

      housing.cheapApartments = (housing.apartments, { rent: { $lte: 1000 } })
      

      Finds on cheapApartments would only consider those elements of housing.apartments where the "rent" field was less than 1000.

      By using an aggregation expression with an unwind stage, you could produce a view over a database that had one document for every member of an array in an input document, providing another means to examine and query embedded documents.

      Attachments

        Issue Links

          Activity

            People

              Votes:
              318 Vote for this issue
              Watchers:
              192 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: