diff --git a/pymongo/database.py b/pymongo/database.py index a4073be68..d687ba297 100644 --- a/pymongo/database.py +++ b/pymongo/database.py @@ -267,6 +267,13 @@ class Database(object): self.__connection._reset() return error + def last_status(self): + """Get status information from the last operation. + + Returns a SON object with status information. + """ + return self._command({"getlasterror": 1}) + def previous_error(self): """Get the most recent error to have occurred on this database. diff --git a/test/test_database.py b/test/test_database.py index 4d733c419..4bebf55a9 100644 --- a/test/test_database.py +++ b/test/test_database.py @@ -195,6 +195,18 @@ class TestDatabase(unittest.TestCase): self.assertEqual(None, db.error()) self.assertEqual(None, db.previous_error()) + def test_last_status(self): + db = self.connection.pymongo_test + + db.test.remove({}) + db.test.save({"i": 1}) + + db.test.update({"i": 1}, {"$set": {"i": 2}}) + self.assert_(db.last_status()["updatedExisting"]) + + db.test.update({"i": 1}, {"$set": {"i": 500}}) + self.failIf(db.last_status()["updatedExisting"]) + def test_password_digest(self): db = self.connection.pymongo_test