Сколько накладных расходов добавит Mongoose к драйверу node-mongodb-native? - PullRequest
4 голосов
/ 11 августа 2011

Сколько накладных расходов добавляет Mongoose к драйверу node-mongodb-native?Если бы я просто хотел иметь несколько структурно похожих запросов в нескольких коллекциях, имеет ли смысл просто писать все с использованием драйвера напрямую?Например, мне нужно сделать что-то следующее (на языке драйвера, скопированный с здесь ):

db.collection('test', function(err, collection) {
  collection.find({'a':1}, function(err, cursor) {
    *do something*
  }
}

Где я бы просто заменил 'test' и 'a'с переменными для хранения фактической коллекции и ключа, который я ищу.

Мне кажется, что в этом случае имеет смысл просто написать все, используя драйвер напрямую.Будет ли какая-то причина использовать сам Mongoose?Неужели накладные расходы настолько незначительны, что я глуп, рассматривая возможность использования драйвера напрямую?

Лучше всего, и спасибо,Сами

Ответы [ 2 ]

3 голосов
/ 12 августа 2011

Зависит от того, насколько большим будет ваше приложение.Если вы делаете только несколько запросов, вероятно, не стоит добавлять Mongoose в список, но как только ваше приложение начнет расти, Mongoose поможет вам поддерживать его в более удобном состоянии.Время разработки обычно более ценно, чем время обработки.

Если ваше приложение не будет обслуживать много одновременных запросов, вы, вероятно, не заметите разницу в производительности.

1 голос
/ 16 октября 2012

Еще одна хорошая особенность использования Mongoose состоит в том, что вы четко определяете свои модели (включая значения по умолчанию, валидацию и т. Д.) В своем приложении, что одновременно предоставляет много встроенной документации для вашего приложения и значительно снижает вероятность несоответствий.когда вы имеете дело с относительно неструктурированной моделью данных.

Реляционные базы данных имеют множество функций для определения типов данных, значений по умолчанию, индексов и т. д. и будут выдавать ошибки, если вы (например) попытаетесь использовать столбец, которыйне существует.

Mongo устраняет многие из этих издержек, но создает дополнительную работу, гарантирующую, что согласованная модель данных документируется и поддерживается в коде реализации;Mongoose делает это намного проще.

У него также есть много полезных функций для контроля ваших моделей, включая возможность использовать строгие схемы (по умолчанию начиная с версии 3), что означает любые значения, которые у вас нет.уже определенные, не записываются в базу данных, «виртуальные поля», которые, например, могут объединять имя и фамилию в строку, как если бы она была сохранена в базе данных (но это не обязательно), иуправление индексами.Для получения более подробной информации см. руководство .

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