【发布时间】:2022-01-26 23:40:30
【问题描述】:
我有这样的收藏
{
"productId" : ObjectId("someId-1"),
"value" : "Nike",
"key" : "Brand",
},
{
"productId" : ObjectId("someId-1"),
"value" : "Blue",
"key" : "Color",
},
{
"productId" : ObjectId("someId-2"),
"value" : "Nike",
"key" : "Brand",
},
{
"productId" : ObjectId("someId-2"),
"value" : "Red",
"key" : "Color",
},
我想进行查询以获取共享这些方面的所有产品 ID
[
{
key: "Brand",
value: "Nike",
},
{
key: "Color",
value: "Blue",
},
]
这应该返回productId = someId-1
请注意,我想使用在所有三个字段(productId、key、value)上创建的索引
【问题讨论】:
-
那么,您尝试过什么?您是否尝试过使用 $ 或指定条件?
-
是的,我尝试将 $or 与 productId 上的 $group 一起作为键,但这利用了键和值部分的索引而不是 productId 部分
标签: mongodb mongoose mongodb-query aggregation-framework