Page tree
Skip to end of metadata
Go to start of metadata

Use this strategy to select documents from the view by key. The view will be searched by the first sorted column.

Allowed method

  • GET

Parameters:

  • databaseName(String databaseName): name of the database to read data from, use "server!!path/database.nsf" format; when omitted, current database is used
  • viewName(String viewName): name of the view; mandatory
  • keyVariableName(String keyVariableName): name of the variable name in route to read value from; mandatory
  • mode("exact"): when present, sets strict key matching. Uses view.getAllDocumentsByKey(key, true). If this parameter is omitted, uses view.getAllDocumentsByKey(key, false) - default (Note: coming in Beta 3)

 

Let's assume our database has view called (ByTopic), that contains first sorted column displaying Topic field.

Notice the {filterValue} part of the first line bellow. This is placeholder for where SmartNSF expects to read parameter value for keyVariableName from, see line 4.

router.GET('topics/filter/{filterValue}') {
   strategy(DOCUMENTS_FROM_VIEW_BY_KEY) {
      viewName('(ByTopic)')
      keyVariableName('filterValue')
   }
   mapJson 'id', json:'id', type:'STRING', isformula:true, formula:'@DocumentUniqueID'
   mapJson 'date_created', json:'date_created', type:'DATETIME', isformula:true, formula:'@Created'
   mapJson 'topic', json:'topic', type:'STRING'
   mapJson 'author', json:'author', type:'STRING', isformula:true, formula:'@Name([CN]; @Author)'
}

 

With route defined above, URL http://server.name/path-to/db.nsf/xsp/.xrest/topics/filter/test will return all documents from view (ByTopic) with field Topic starting with "test".

 

For example, if only one document matches this filter, we'll get this JSON:

    {
        "author": "Martin Jinoch",
        "id": "54502859C07299C7C12580D8006404F4",
        "date_created": "2017-03-03T11:01+00:00",
        "topic": "test"
    }