使用JSON.parse的StringI到ObjectId

时间:2017-07-05 17:26:32

标签: node.js mongoose

我希望创建一个包含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') }

请帮忙

1 个答案:

答案 0 :(得分:0)

您可以在不解析字符串的情况下构建where对象:

var ObjectId = require('mongoose').Types.ObjectId;

var where = { class: {} };
where.class[className] = { student: new ObjectId(studentId) };