2

我刚开始使用 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。我为新问题道歉。

4

1 回答 1

4

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

在您的所有示例中,由于您有一个唯一的 _id,因此没有理由也查询creator.

于 2013-09-30T17:29:55.420 回答