【发布时间】:2021-06-06 14:34:48
【问题描述】:
我想从 mongoose/mongodb 中的对象数组中返回匹配的对象,但我似乎做错了。
我的架构目前如下所示:
items: {
left: { type: Number, default: 0 },
total: { type: Number, default: 0 },
each: [{
name: String
}]
}
这使得each 中的每个对象都获得了自己的对象ID。现在我想用猫鼬来查询这个,我试过$in和$elemMatch和一个普通的.find({ items.each._id: req.params.id })。
更具体
Project.findOne({ 'items.each': { $elemMatch: { _id: req.params.id } } }).exec()
我想像这样返回一个对象:
{
_id: ObjectId(23426456234),
name: "My name is"
}
但为什么我不能得到这个?
【问题讨论】:
-
你检查过
req.params.id是一个objectid还是一个字符串?您确定each对象已正确保存在数据库中吗?
标签: mongodb mongoose mongoose-schema