58 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			58 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
|   | --- | |||
|  | id: 587d7fb8367417b2b2512c11 | |||
|  | title: Delete Many Documents with model.remove() | |||
|  | challengeType: 2 | |||
|  | forumTopicId: 301538 | |||
|  | dashedName: delete-many-documents-with-model-remove | |||
|  | --- | |||
|  | 
 | |||
|  | # --description--
 | |||
|  | 
 | |||
|  | `Model.remove()` is useful to delete all the documents matching given criteria. | |||
|  | 
 | |||
|  | # --instructions--
 | |||
|  | 
 | |||
|  | Modify the `removeManyPeople` function to delete all the people whose name is within the variable `nameToRemove`, using `Model.remove()`. Pass it to a query document with the `name` field set, and a callback. | |||
|  | 
 | |||
|  | **Note:** The `Model.remove()` doesn’t return the deleted document, but a JSON object containing the outcome of the operation, and the number of items affected. Don’t forget to pass it to the `done()` callback, since we use it in tests. | |||
|  | 
 | |||
|  | # --hints--
 | |||
|  | 
 | |||
|  | Deleting many items at once should succeed | |||
|  | 
 | |||
|  | ```js | |||
|  | (getUserInput) => | |||
|  |   $.ajax({ | |||
|  |     url: getUserInput('url') + '/_api/remove-many-people', | |||
|  |     type: 'POST', | |||
|  |     contentType: 'application/json', | |||
|  |     data: JSON.stringify([ | |||
|  |       { name: 'Mary', age: 16, favoriteFoods: ['lollipop'] }, | |||
|  |       { name: 'Mary', age: 21, favoriteFoods: ['steak'] } | |||
|  |     ]) | |||
|  |   }).then( | |||
|  |     (data) => { | |||
|  |       assert.isTrue(!!data.ok, 'The mongo stats are not what expected'); | |||
|  |       assert.equal( | |||
|  |         data.n, | |||
|  |         2, | |||
|  |         'The number of items affected is not what expected' | |||
|  |       ); | |||
|  |       assert.equal(data.count, 0, 'the db items count is not what expected'); | |||
|  |     }, | |||
|  |     (xhr) => { | |||
|  |       throw new Error(xhr.responseText); | |||
|  |     } | |||
|  |   ); | |||
|  | ``` | |||
|  | 
 | |||
|  | # --solutions--
 | |||
|  | 
 | |||
|  | ```js | |||
|  | /** | |||
|  |   Backend challenges don't need solutions,  | |||
|  |   because they would need to be tested against a full working project.  | |||
|  |   Please check our contributing guidelines to learn more. | |||
|  | */ | |||
|  | ``` |