MongoDB-在特定条件下如何选择字段



如果查询中有特定条件,我想包括和排除一些字段

// Survey Schema:
new mongoose.Schema({
options: {
type: [mongoose.Schema.Types.String]
},
votes: {
type: [{
user: mongoose.Schema.Types.ObjectId,
option: mongoose.Schema.Types.Number,
}]
},
})

我希望在我的路由处理程序中有这样的

const userID = req.user.id
const isAuth = userID!=undefined
const surveys = await Survey.aggregate([
$project:{
options:1,
votes: {
$cond: {
if: {
$in: [user.id, 'votes']
}
}
}  
}
])

结果应该是

如果userID在快照中特定文档的数组votes中,则字段应为

{options:[], votes:[]},...

其他

{options:[]},...

如果userIDundefined,则将votes设置为0。

let project = {};
if (!userID) {
project.votes = 0;
}
const surveys = await Survey.find({}, project);

相关内容

  • 没有找到相关文章

最新更新