Mongoose Find vs Find Where

时间:2013-09-30 11:49:09

标签: node.js mongodb mongoose

我刚刚开始使用MongooseJS,我想知道这些查询中哪一个是查找where-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。我为新问题道歉。

1 个答案:

答案 0 :(得分:3)

如果您已经拥有该文档的_id,则Model.findById(_id, callback);是表达该查询的最明确方式。在查询可能与多个文档匹配的条件时,Model.find(queryConditions, callback);与链接样式主要是偏好/风格/意见的问题。我的个人观点是使用查询对象比链接更简单,更直接,我几乎从不喜欢,但它又是一种风格的东西。

在所有示例中,由于您拥有唯一的_id,因此没有理由在creator上进行查询。