我正在尝试创建查询对象以查询数据库中的某些数据,例如,该查询具有动态内容...
我正在从客户端接收这样的JSON数据。
{
'reason': 'whatever',
'dateFrom': DATE_VALUE,
'dateTo': DATE_VALUE,
}
所以我像这样在月光下有一个模式。
const example = new Schema({
item: {
reason: { type: String }
},
date: { type: Date }
})
所以我的查询对象将是这样。
var query = {}
if (req.body.dateFrom != undefined || req.body.dateTo != undefined) {
query.date = { $gte: req.body.dateFrom, $lte: req.body.dateTo}
}
// if (req.body.reason != undefined) {
// query.item.reason = req.body.reason
// }
// This is not correct, but i need something like that..
exampleModel.find(query).exec(function (err, example) {
if (err) {
res.json(err)
return
} else {
res.json(example)
}
})
所以我的问题是我不知道如何创建查询对象以到达架构中的嵌套对象, 正确的查询是..
exampleModel.find({ 'item.reason': 'whatever', date: { $gte: req.body.dateFrom, $lte: req.body.dateTo }})