Difference between revisions of "MongoDB Delete"

From mi-linux
Jump to navigationJump to search
 
Line 34: Line 34:
 
== Delete Department 40 ==
 
== Delete Department 40 ==
  
Department 40 has closed down:
+
Department 40 has closed down completely and should be removed. Note, if you added the duplicate department 40 previously you will have 2 documents:
  
  db.dept.deleteOne({deptno:40})
+
  db.dept.find({deptno:40})
 +
 
 +
Which should return:
 +
 
 +
<pre style="color: blue">
 +
{ "_id" : 40, "deptno" : 40, "dname" : "OPERATIONS", "loc" : "BOSTON" }
 +
{ "_id" : 50, "deptno" : 40, "dname" : "OPERATIONS V2", "loc" : "BOSTON" }
 +
</pre>
 +
 
 +
If you use the ''deleteOne()'' function, it will likely delete the first record. To delete both documents ''remove()'' must be used instead:
 +
 
 +
db.dept.remove({deptno: 40})
  
 
Note, if the query_criteria only returns one document, '''remove()''' and '''deleteOne()''' will have the same effect.
 
Note, if the query_criteria only returns one document, '''remove()''' and '''deleteOne()''' will have the same effect.

Latest revision as of 20:35, 13 November 2017

Main Page >> MongoDB >>MongoDB Workbook >> Deleting a Document/Collection

Deleting a Document

At some stage you may want to delete a document from a collection. The format is:

db.collectionName.deleteOne(query_criteria) /* deletes the first document found that matches the query criteria */
db.collectionName.remove(query_criteria) /* deletes all documents found that matches the query criteria */
db.collectionName.remove(query_criteria) /* deletes all documents in a collection (use with care!) */

Deleting a Collection

If you want to drop a collection completely, including any data held in it:

db.collectionName.drop() /* removes a collection completely (use with care!) */


This is equivalent to the SQL command:

DROP TABLE tableName;

Delete Department 40

Department 40 has closed down completely and should be removed. Note, if you added the duplicate department 40 previously you will have 2 documents:

db.dept.find({deptno:40})

Which should return:

{ "_id" : 40, "deptno" : 40, "dname" : "OPERATIONS", "loc" : "BOSTON" }
{ "_id" : 50, "deptno" : 40, "dname" : "OPERATIONS V2", "loc" : "BOSTON" }

If you use the deleteOne() function, it will likely delete the first record. To delete both documents remove() must be used instead:

db.dept.remove({deptno: 40})

Note, if the query_criteria only returns one document, remove() and deleteOne() will have the same effect.

This is equivalent to the SQL command:

DELETE FROM dept WHERE deptno = 40;

Check that the collection has gone:

db.dept.find({deptno:40})

No documents should be returned.

Next Step

This concludes the section on manipulating collections. Return to the Workbook.