Node.js 存在空字段的Mongoose模型选择查询
当我写作时:Node.js 存在空字段的Mongoose模型选择查询,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,当我写作时: User.find({}).select('email firstName lastName').exec(...) 我希望生成的用户具有以下结构: { email: 'user@email.com', firstName: null, lastName: null } 即使未为此记录设置firstName和lastName。相反,我得到: { email: 'user@email.com' } 有什么方法可以实现我想要的吗?正如评论中提到的,您可以借助聚合和
User.find({}).select('email firstName lastName').exec(...)
我希望生成的用户
具有以下结构:
{
email: 'user@email.com',
firstName: null,
lastName: null
}
即使未为此记录设置firstName
和lastName
。相反,我得到:
{
email: 'user@email.com'
}
有什么方法可以实现我想要的吗?正如评论中提到的,您可以借助聚合和运算符来实现这个结果。在猫鼬中,它看起来像:
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
}
)
你自己添加它们这不能由模型定义或其他东西自动猜测?你可以使用
聚合来实现这一点,这是猫鼬的方法吗?我总是混淆使用mongodb原始语法查询还是使用mongoose形式主义。