MongoDB Java API: put () против append () - PullRequest
18 голосов
/ 04 июля 2011

Я новичок в mongodb и прохожу учебник по Java и Mongodb.Я заметил, что для BasicDBObject есть put () и append (), и я взглянул на API, put () наследует, а append () является встроенным для BasicDBObject.У кого-нибудь есть разница, например скорость доступа?Спасибо!

1 Ответ

21 голосов
/ 08 июля 2011

Из BasicDBObject источников :

public BasicDBObject append( String key , Object val ){
    put( key , val );
    return this;
}

put() возвращает предыдущее значение, если применимо.append() вызывает put() внутри и возвращает сам экземпляр BasicDBObject.По сути, append() является более плавным интерфейсом для put().Это позволяет вам делать что-то вроде этого:

BasicDBObject o = new BasicDBObject().append("One", 1).append("Two", 2).append("Three", 3);

Что касается производительности, JVM будет предположительно встроенных методов, таких как append(), если они используются где-то достаточно часто.Однако, исходя из моего опыта и частичного профилирования, это не всегда так, и вы непременно наберете немного скорости, напрямую используя put() и сохранив JVM для догадок.

Тем не менее,удобочитаемость кода всегда должна быть приоритетом.Просто напишите свой код так, как вам удобно, а затем выполните тест / профиль, чтобы найти возможные варианты оптимизации.Преждевременная оптимизация - это искушение, которого следует избегать любой ценой ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...