WebFund 2015W: Assignment 5: Difference between revisions

From Soma-notes
No edit summary
No edit summary
Line 7: Line 7:
This assignment is due March 2, 2015.
This assignment is due March 2, 2015.


==Features==
===Syntax===


queryNotes.js should be called as follows:
queryNotes.js should be called as follows:


   node queryNotes.js [--output=<output file>] [--maxcount=<max number of documents to return>]  <query> [<projection>]
   node queryNotes.js [--output=<output file>] [--maxcount=<max number of documents to return>]  <criteria> [<projection>]
 
===Arguments===


Notes on the arguments:
* The query is mandatory.  It should be a single string that follows the syntax of a [http://docs.mongodb.org/manual/reference/method/db.collection.find/ find() criteria object] except that the enclosing curly braces are optional.   
* The query is mandatory.  It should be a single string that follows the syntax of a [http://docs.mongodb.org/manual/reference/method/db.collection.find/ find() criteria object] except that the enclosing curly braces are optional.   
* The output file should default to standard out.
* The output file should default to standard out.
Line 19: Line 20:
* The projection should default to all fields.  The enclosing braces on the object should also be optional.
* The projection should default to all fields.  The enclosing braces on the object should also be optional.


To be specific, to process the query and projection strings you should:
===Key logic===
To process the query and projection strings you should:
* add enclosing curly braces if they are not present,
* add enclosing curly braces if they are not present,
* convert the string to an object using [https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse JSON.parse()], and then  
* convert the string to an object using [https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse JSON.parse()], and then  
Line 25: Line 27:
* retrieve all of the objects using [http://docs.mongodb.org/manual/reference/method/cursor.toArray/ .toArray()] on the cursor object.
* retrieve all of the objects using [http://docs.mongodb.org/manual/reference/method/cursor.toArray/ .toArray()] on the cursor object.


===Scoring===
Points will be awarded as follows:
Points will be awarded as follows:
* ?
* ?

Revision as of 19:34, 24 February 2015

This Assignment is not yet finalized

In this assignment you will create queryNotes.js, a program that will query the notes collection for matching notes. Please submit your answers as a single JavaScript source file called "<username>-queryNotes.js" (where username is your MyCarletonOne username). Please do not submit a zip file (i.e., no need for a node_modules directory).

In total, there are 10 points. The questions below will be automatically graded for everything but style.

This assignment is due March 2, 2015.

Syntax

queryNotes.js should be called as follows:

 node queryNotes.js [--output=<output file>] [--maxcount=<max number of documents to return>]  <criteria> [<projection>]

Arguments

  • The query is mandatory. It should be a single string that follows the syntax of a find() criteria object except that the enclosing curly braces are optional.
  • The output file should default to standard out.
  • If no maxcount is specified then all matching documents should be returned.
  • The projection should default to all fields. The enclosing braces on the object should also be optional.

Key logic

To process the query and projection strings you should:

  • add enclosing curly braces if they are not present,
  • convert the string to an object using JSON.parse(), and then
  • create a cursor object using find(), giving it the supplied criteria and optionally the projection object, and
  • retrieve all of the objects using .toArray() on the cursor object.

Scoring

Points will be awarded as follows:

  • ?
  • ?
  • ?
  • 2 points for style