【发布时间】:2021-12-30 09:15:34
【问题描述】:
在我的用户集合中,我将一组愿望清单项目存储在一个数组中,如下所示
{
"_id" : ObjectId("61840f03cfd5c0b680648f2c"),
"email" : "xxxxxx@domain.com",
"wishlist" : [
ObjectId("6182a45f38f323f21bec2ddc"),
ObjectId("61825f026d0fd99ef70380fd")
]
}
在我的 React 产品页面中,我想根据电子邮件以及保存在愿望清单数组中的 objectID((即 6182a45f38f323f21bec2ddc)来检查产品是否已添加到愿望清单中。
尽管付出了很多努力,但我还是不明白如何使用 mongoose 编写查询。
我想出的最佳解决方案是
db.getCollection('users').find({
email: "xxxxxx@domain.com",
"user.wishlist" : "6182a45f38f323f21bec2ddc",
}).select('wishlist').exec()
但是结果我得到了一个空数组。如果找到产品,我想返回产品的 objectId。 如何明确告诉 mongoose 选择与特定电子邮件地址匹配的文档,然后映射到愿望清单数组的每个元素中以找到匹配的产品?
为了清楚起见,下面是我的用户模型
const userSchema = new mongoose.Schema({
email:{
type:String,
required: true,
index: true,
},
wishlist:[{type:ObjectId, ref:"Product"}],
},
{timestamps: true}
);
感谢你们的帮助!
【问题讨论】:
标签: reactjs json mongodb mongoose