我刚刚开始使用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。我为新问题道歉。
答案 0 :(得分:3)
如果您已经拥有该文档的_id,则Model.findById(_id, callback);
是表达该查询的最明确方式。在查询可能与多个文档匹配的条件时,Model.find(queryConditions, callback);
与链接样式主要是偏好/风格/意见的问题。我的个人观点是使用查询对象比链接更简单,更直接,我几乎从不喜欢,但它又是一种风格的东西。
在所有示例中,由于您拥有唯一的_id,因此没有理由在creator
上进行查询。