2013-09-30 8 views
1

Я только начал работать с MongooseJS, и мне интересно, какой из этих запросов является лучшим способом сделать запрос на поиск. Этот запрос?Mongoose Find vs Find Where

post.Model 
      .findOne({ 
       _id  : id, 
       creator : creator 
      }) 
      .remove(function(err, results) { 
       callback(err, results); 
      }); 

или этот запрос?

post.Model 
       .findOne({ 
        creator : creator 
       }) 
       .where('_id') 
       .equals(id) 
       .remove(function(err, results) { 
        callback(err, results); 
       }); 

Как работает так, как я хочу его тоже, но я чувствую, что я делаю что-то неправильно, и что есть лучший способ сделать это. Я искал примеры запросов, которые могут мне помочь, и я нашел различные реализации, такие как:

post.Model.findOne({ $where : [ ] }) 

TIA. И прошу прощения за новый вопрос.

ответ

3

Если у вас уже есть документ _id, то Model.findById(_id, callback); - самый ясный способ выразить этот запрос. При запросе с условиями, которые могут соответствовать нескольким документам, Model.find(queryConditions, callback); против стиля цепочки в основном зависит от предпочтения/стиля/мнения. Мое личное мнение - использование объекта запроса проще и проще, чем цепочка, что мне почти никогда не нравится, но опять-таки это стиль.

Во всех ваших примерах, поскольку у вас есть уникальный _id, нет причин также запрашивать creator.