挿入の getlasterror からの「n」値は常にゼロです。('n' 値は、WriteResult.getN() が返す値です。)
この MongoDB Jira チケットを参照してください: https://jira.mongodb.org/browse/SERVER-4381。新しい挿入、更新、削除メカニズムに優先して閉じられたもの: https://jira.mongodb.org/browse/SERVER-9038
簡単に言えば。あなたは怒ったり、何かを見逃したりしていません。これは MongoDB の「機能」であり、2.6 リリースで最終的に修正されることを願っています。
ロブ。
編集:
保存したドキュメントを印刷するために、例を少し変更しました。このバージョンをお使いの環境で実行してみていただけますか?
import java.net.UnknownHostException;
import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBObject;
import com.mongodb.MongoClient;
import com.mongodb.WriteConcern;
public class StackOverFlow {
    public static void main(String[] args) throws UnknownHostException {
        MongoClient mongo = new MongoClient("localhost:27017");
        DB db = mongo.getDB("db");
        DBCollection collection = db.getCollection("collection");
        BasicDBObject o = new BasicDBObject();
        o.put("key1", "value1");
        o.put("key2", "value2");
        collection.insert(WriteConcern.SAFE, o);
        for (DBObject doc : collection.find()) {
            System.out.println(doc);
        }
    }
}
私のマシンでは、次のように出力されます。
{ "_id" : { "$oid" : "5235f98495302901eb70e7a4"} , "key1" : "value1" , "key2" : "value2"}