如何解决使用 $facet 和 mongoDB $search 进行过滤器导航
如何在使用过滤器时制作不随 $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 举报,一经查实,本站将立刻删除。