我希望创建一个包含ObjectId的动态where子句。无法使用JSON解析将字符串转换为ObjectId。
这是我想要做的工作......
var className = 'maths';
var studentId = '595d193cd4832d53bfc22cea'
var where = JSON.parse('{ "class.' + className + '.student":' + studentId + '}')
College.findOne(where);
我的where子句应该在下面看,而且上面的语句应该没有错误地运行
{class.math.student: 595d193cd4832d53bfc22cea }
或
{class.math.student: ObjectId('595d193cd4832d53bfc22cea') }
请帮忙
答案 0 :(得分:0)
您可以在不解析字符串的情况下构建where
对象:
var ObjectId = require('mongoose').Types.ObjectId;
var where = { class: {} };
where.class[className] = { student: new ObjectId(studentId) };