Changed in version 2.6: A new protocol for write operations integrates write concerns with the
write operations, eliminating the need for a separate getLastError.
Most write methods now return
the status of the write operation, including error information.
In previous versions, clients typically used the getLastError in
combination with a write operation to verify that the write
succeeded.

Returns the error status of the preceding write operation on the
current connection.

If true, wait for the next journal commit before returning, rather
than waiting for a full disk flush. If mongod does not have
journaling enabled, this option has no effect. If this option is
enabled for a write operation, mongod will wait no more
than 1/3 of the current commitIntervalMs before
writing data to the journal.

w

integer or string

When running with replication, this is the number of servers to
replicate to before returning. A w value of 1 indicates the
primary only. A w value of 2 includes the primary and at least
one secondary, etc. In place of a number, you may also set w to
majority to indicate that the command should wait until the
latest write propagates to a majority of the voting replica set
members.

Changed in version 3.0: In previous versions, majority referred to the majority of all
members of the replica set instead of the majority of the voting
members.

If using w, you should also use wtimeout. Specifying
a value for w without also providing a wtimeout may cause
getLastError to block indefinitely.

wtimeout

integer

Optional. Milliseconds. Specify a value in milliseconds to control how
long to wait for write propagation to complete. If replication does
not complete in the given timeframe, the getLastError
command will return with an error status.

If the preceding operation was an update or a remove operation, but
not a findAndModify operation,
n reports the number of documents matched by
the update or remove operation.

For a remove operation, the number of matched documents will equal
the number removed.

For an update operation, if the operation results in no
change to the document, such as setting the value of the field to
its current value, the number of matched documents may be smaller
than the number of documents actually modified. If the update
includes the upsert:true option and results in the creation of a
new document, n returns the number of
documents inserted.

n is 0 if reporting on an update or remove
that occurs through a findAndModify operation.

When issued against a sharded cluster after a write operation,
shards identifies the shards targeted in the
write operation. shards is present in the
output only if the write operation targets multiple shards.

If writing to a replica set, writtenTo is an
array that contains the hostname and port number of the members that
confirmed the previous write operation, based on the value of the
w field in the command.

The following example ensures the preceding operation has replicated to
two members (the primary and one other member). The command also
specifies a timeout of 5000 milliseconds to ensure that
the:dbcommand:getLastError command does not block forever if MongoDB
cannot satisfy the requested write concern:

The following example ensures the write operation has replicated to a
majority of the voting members of the replica set. The command also
specifies a timeout of 5000 milliseconds to ensure that
the:dbcommand:getLastError command does not block forever if MongoDB
cannot satisfy the requested write concern: