当我写:
User.find({}).select('email firstName lastName').exec(...)
我希望生成的user
具有以下结构:
{
email: 'user@email.com',
firstName: null,
lastName: null
}
即使没有为此记录设置firstName
和lastName
。相反,我得到:
{
email: 'user@email.com'
}
有没有办法达到我想要的目的?
答案 0 :(得分:1)
正如评论中所提到的,您可以借助聚合和$ifNull运算符来实现该结果。在猫鼬中它看起来像:
User.aggregate(
[
{$project: {
_id:0,
email: {$ifNull: ["$email", null]},
firstName: {$ifNull: ["$firstName", null]},
lastName: {$ifNull: ["$lastName", null]}
}}
],
function(err,result) {
// Result is an array of documents
}
)