MongoDB :如何获取其数组元素在另一个元素数组中找到的所有项目
MongoDB : How to get all items where its array elements are found in another array of elements
我将 MongoClient 与 JavaScript 一起使用,我有两个集合,products
和 categories
。
我正在尝试获取与我检索的产品相关的所有类别。
类别有一个名为“产品”的关系字段,其中包含其所有产品 ID。
另一方面,产品没有关系字段。
我需要做的是获取产品查询的所有 ID,然后以某种方式告诉 mongodb 查找所有类别,哪个关系产品数组包含主要的值产品数组.
示例:
categories :[
{
name: "sweets",
products:[
"33hdhsksk243wjsjsksksjsj",
"E383iwnsnsbdbdhnsm282",
"Jj4i3jwnwnskdje9w9w9wjj"
]
},
{
name:"fruits",
products:[
"42221+343211111sj",
"43939€jsjakaljwiwjn3",
"Jj4i3jwnwnskdje9w9w9wjj"
]
},
]
products:["42221+343211111sj", "43939€jsjakaljwiwjn3"]
查询搜索结果:
水果类别,因为它的一些产品在这个数组中(但如果有另一个类别的产品匹配相同的搜索,我们也应该return它)
对我有用的是使用 $in 过滤器。
例如
db.collection("categories").find({products:{$in:productIds}}).toArray();
我将 MongoClient 与 JavaScript 一起使用,我有两个集合,products
和 categories
。
我正在尝试获取与我检索的产品相关的所有类别。
类别有一个名为“产品”的关系字段,其中包含其所有产品 ID。
另一方面,产品没有关系字段。
我需要做的是获取产品查询的所有 ID,然后以某种方式告诉 mongodb 查找所有类别,哪个关系产品数组包含主要的值产品数组.
示例:
categories :[
{
name: "sweets",
products:[
"33hdhsksk243wjsjsksksjsj",
"E383iwnsnsbdbdhnsm282",
"Jj4i3jwnwnskdje9w9w9wjj"
]
},
{
name:"fruits",
products:[
"42221+343211111sj",
"43939€jsjakaljwiwjn3",
"Jj4i3jwnwnskdje9w9w9wjj"
]
},
]
products:["42221+343211111sj", "43939€jsjakaljwiwjn3"]
查询搜索结果:
水果类别,因为它的一些产品在这个数组中(但如果有另一个类别的产品匹配相同的搜索,我们也应该return它)
对我有用的是使用 $in 过滤器。
例如
db.collection("categories").find({products:{$in:productIds}}).toArray();