问题描述
如何在使用过滤器时制作不随 $search 改变的品牌。
BC
输出:
const products = await Product.aggregate([
{
$search: {
compound: {
must: finalQuery,},{ $skip: pageSize * (page - 1) },{ $limit: pageSize },{
$project: {
_id: 1,name: 1,brand: 1,productCollection: 1,department: 1,category: 1,subcategory: 1,color: 1,price: 1,images: 1,size_names: 1,sizes: 1,productType: 1,productTag: 1,counter: 1,discountdisplayLabel: 1,discount: 1,mrp: 1,createdAt: 1,tags: 1,slug: 1,// score: { $Meta: "searchscore" },]);
const filters = await Product.aggregate([
{
$search: {
compound: {
must: finalQuery,{
$facet: {
category_filters: [
{
$group: {
_id: "$category",count: { $sum: 1 },{ $sort: { count: -1,_id: -1 } },],subcategory_filters: [
{
$group: {
_id: "$subcategory",brands_filters: [
{
$group: {
_id: "$brandSlug",size_names_filters: [
{ $limit: 10000 },{ $unwind: "$sizes" },{
$group: {
_id: "$sizes.name",prices_filters: [
{
$bucketAuto: {
groupBy: "$price",buckets: 5,]);
}
现在如果我点击品牌,它不应该也隐藏其他品牌。
示例- 我得到的产品与brandX、brandY 和brandZ 相关
当我添加brandX过滤器时..
brandY 和brandZ 也被过滤了..
我想在 UI 中显示brandX 的结果及其适当尺寸以及brandY 和brandZ 的结果
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)