【发布时间】:2019-11-24 08:17:38
【问题描述】:
我正在尝试动态构建一个猫鼬查询。我遇到的问题是,当查询包含 objectId 时,我无法弄清楚如何执行此操作。
我正在使用猫鼬 5.4.6。
我的猫鼬模式看起来像这样:
stuff: String,
user: {
type: mongoose.Schema.Types.ObjectId,
ref: 'User'
},
moreStuff: String,
});
我需要动态构建我的查询,要查询的可能字段之一是user。要查询的字段通过params 对象发送到服务器。当我要查询的字段是stuff 时,这很容易。我只是执行以下操作:
let query = {};
query.stuff = params.stuff;
this.model('MyModel').find(query)...
但是,我不知道如何搜索用户,因为 params.user 只是 mongo id 的字符串版本,但它需要格式化为 objectId("params.user") 才能使查询工作。也就是说,我需要这样的东西:
query.user = objectId("params.stuff");
我怎样才能让它工作?
【问题讨论】: