【发布时间】:2015-09-25 23:19:26
【问题描述】:
我的用户架构是,
{
_id: String,
name: String,
status: {type: String, "default": "notverified" }
}
在我的猫鼬查询中,我需要从结果中排除 status 字段。
我的模型查询是这样的,
User.find({}, {status: false}, function(err, users) {
// process the error
if (err) console.error(err);
// process the result
console.log(users);
});
在上面的查询中,我排除了status,但在结果中我得到了具有架构中定义的默认值的文档。即status: "notverified"
尽管这是 Mongoose 的问题,但为了快速修复,我尝试了这里提到的方法 How to exclude some fields from the document。
但它不起作用,因为查询返回单个文档,所以 toObject() 可以工作,但我想从没有 toObject() 方法的文档数组中排除。
任何其他可能的工作解决方案(在将其标记为重复之前)?
【问题讨论】:
-
这很有趣:如果将
false替换为0,它将省略status属性。根据the MongoDB docs,false和0都应该这样做,所以显然 Mongoose 改变了这些语义。