【发布时间】:2019-01-09 18:45:13
【问题描述】:
我正在创建一个 webapp 供用户从 mongodb 查询数据。我有前端使用 react 和后端与 nodejs 连接 mongodb。
我已经在聚合函数下包含了所有相关的匹配条件。但是,我希望具有注释掉某些键值对的效果(我的意思是取消查询字段条件的效果)。例如,
router.get('/getmongo', function(req, res) {
MongoClient.connect(process.env.DB_CONN, function(err, db) {
if (err) throw err;
db.aggregate([
{
$match:{
'employmentStatus':/employed|unemployed/i,
'gender':{$in:["male","female"]},
'age':{$gte:20, $lte:30}
}
},
{ "$group": {
"_id": "$employmentStatus",
"count": { "$sum": 1 }
}}
]).limit(4).toArray(function(err, docs) {
if (err) throw err;
res.send(JSON.stringify(docs))
db.close();
})
})
假设在前端,用户没有选择年龄选项,这意味着用户端没有对年龄标准的规定。通常对于这种情况,用户会在 MongoDB GUI 上注释掉或删除整行年龄查询,只留下就业状态和性别作为唯一的两个查询条件。我正在研究 mongoAPI 但找不到任何有用的工具来复制这种效果。有什么想法或建议吗? (顺便说一下我用的是Mongo v2.3.3)
【问题讨论】: