2013-09-30 66 views
1

我剛開始使用MongooseJS,我想知道哪些查詢是做查找查詢的最佳方法。這個查詢?貓鼬發現和找到哪裏

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上查詢。