【发布时间】:2021-04-11 16:08:22
【问题描述】:
我希望从我的 mongoose 数据集合中查询项目数据。我只需要用户“456”项目“4”的“库存”布尔值,但是当我在我的示例中查询时,我会收到整个用户对象。
数据:
data = [{
userId: "123",
items: [{
item: "2",
stocked: false
},
{
item: "3",
stocked: true
},
{
...more items
}
],
},
{
userId: "456",
items: [{
item: "1",
stocked: true
},
{
item: "4",
stocked: true
},
{
...more items
}
],
},
{
...more users
}
]
路线:
router.post("/example", (req, res) => {
Data.findOne({
userId: "456",
"items.item": "4"
}
}).then((item) => {
console.log(item) // desired: {item: "4", stocked: true}
if (item.stocked) {
console.log("Item is stocked!")
}
})
})
问题:响应是整个用户对象,包括所有项目:
{
userId: "456",
items: [{
item: "1",
stocked: true
},
{
item: "4",
stocked: true
},
{
...more items
}
],
},
期望的响应:{ item: "4", stocked: true }
任何提示或帮助将不胜感激!
【问题讨论】:
-
我知道我可以使用点表示法来访问其中的存储值,但我希望通过 mongoose 查询完全做到这一点。谢谢。
标签: javascript reactjs mongodb express mongoose