首页 > 编程语言 >使用 JavaScript Map Method 组合 mongo 查询的算法

使用 JavaScript Map Method 组合 mongo 查询的算法

时间:2022-08-31 08:24:30浏览次数:90  
标签:Map mongo 组合 map image JavaScript 查询

使用 JavaScript Map Method 组合 mongo 查询的算法

假设您有大量数据,并且您想查找选定品牌的特定产品,例如 尼卡化妆品 和一个特定的类别,例如 润唇膏 从中。你的代码看起来像

image 1 : Query of finding a combination of a brand and a product type

但是,如果您必须对不同项目集的各种组合进行查询,该怎么办。

假设用户选择了 2 个产品类别,第一个是 润唇膏 另一个是 口红 被选中的品牌是 尼卡化妆品 , 大地节奏凯美人 .

检查这个 视频 为了更清楚。

因此,各种可能的组合如下

table 1: Table of various possible combinations

对于上述组合,查询应如下所示 图 3

image 2: Various possible combinations

这是使此查询动态化的详细分步过程

步骤 1) 创建一个名为“map.js”的文件:-

您可以使用任何名称,但我们必须再次使用此文件,因此最好使用同名文件。

现在,在 map.js 中编写以下代码

image 3: Creating a map object using Map Method

在这里,我们使用 Map 方法创建了一个地图对象 产品类别 作为 钥匙品牌 作为 价值观 .上面代码的输出是

image 4: Output of map

在这里,我们创建了各种可能组合的键值对,将其与上表进行比较,对于每个产品,我们都创建了一组带有品牌的组合。现在我们必须制作这些组合的数组。

步骤 2) 制作所有可能组合的数组:-

image 5: Making array of combinations

让我们看看这段代码的输出

image 6: Output after making array of all the combinations

现在,我们得到了组合数组,但是我们不能在查询中使用上面的数组,因为我们必须使用 或者 & 运算符如图所示 ** 图 2** .

步骤 3) 使用具有 $and 作为键的元素创建一个数组:-

image 7: Making array using $and operator as a key for elements

上面创建的数组的输出如下所示

image 8: Output of queryArr

现在,让我们检查一下 目的 包含

image 9: Output of the element at 0th index of queryArr

为了使这段代码可重用,让我们把它包装成一个函数并导出它。

步骤 4) 将整个代码包装在一个函数中并导出:-

现在,我们必须注释掉我们在第 1 步进行查询时使用的数组,见下图

image 10: Wrapping of the code inside a function and exporting

现在我们需要在我们编写查询的文件中导入上述函数。

步骤 5) 在我们编写了 mongo 查询的文件中导入上述函数:-

进口 ** 创建查询** 来自 map.js 的函数

image 11: Import algorithm from map.js and use it inside mongo query code

就是这样,这就是我创建算法的方式 地图法 用于 Mongodb 查询 .

谢谢你的时间。

笔记:

  1. 您的数据文件应包含 产品类别 作为键
  2. 您应该对 mongo 查询的一般工作方式,尤其是其运算符有一点了解。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/2806/05363108

标签:Map,mongo,组合,map,image,JavaScript,查询
From: https://www.cnblogs.com/amboke/p/16641634.html

相关文章

  • 基础知识——在 5 分钟内了解 Javascript 基础知识。
    基础知识——在5分钟内了解Javascript基础知识。对新开发人员的快速且有价值的Javascript审查。如果你和我一样,你喜欢编码,但在学习新事物几天后很难记住基本概念。......
  • mybatis 中resultMap原理
    mybatis中从数据库中查询出数据,然后转化成对象的过程中起了关键作用的一个类是ResultMap.他定义了查询的结果最终转化成了哪个类的对象,并且定义了每个对象的属性是由......
  • HashMap面试相关
    HashMap源码:加载因子:loadFactory--默认0.75f初始容量大小:capacity默认16,最大限制1<<30扩容:当数组元素的数量>初始容量大小*加载因子,就会扩容.会调......
  • fill().map()
    参考https://www.cnblogs.com/goudongmei/p/15141352.html小案例consthours=newArray(24).fill('').map((_,index)=>+index+1)returnhours.sl......
  • 工具函数(JavaScript)——如何判断设备是不是移动端
    浏览器有一个Navigator接口,表示用户代理的状态和标识。Navigator.userAgent可以知道客户端的设备类型。请求的请求标头有一个user-agent字段,内容中包含了设备型号的信......
  • 优雅创建List或者Map的方式
    List创建空List:Collections.emptyList();创建单个元素的List:Collections.singletonList("item");但是需要注意,上面两种创建方式创建出来的List都是不可变List,创建可......
  • ES6面试点-WEAKMAP与MAP的区别,SET与WEAKSET的区别
    ES6面试点-WEAKMAP与MAP的区别,SET与WEAKSET的区别标签: es6  ES6引入了四种新的数据结构:映射(Map)弱映射(WeakMap)集合(Set)弱集合(WeakSet)一、Object对......
  • service+controller+dao(mapper)趣味解读
    service:服务层,你可以理解为服务员controller:控制层,你可以理解为厨师dao:数据持久层,你可以理解为除使用的你自己服务员就负责接待你和给厨师反馈是不是,你可以想一下,你去吃......
  • 关于 JavaScript 函数的思考
    函数可以将一堆重复的代码整合成一个整体,在需要改变的地方通过参数传值来改变。比如,根据类型查询数据,接口返回的数据一样,后续处理这个数据的逻辑也是一样的,只有类型和输入......
  • JavaScript 引擎,一个真实的故事(第 1 部分)
    JavaScript引擎,一个真实的故事(第1部分)一个任何使用过JavaScript的人都可能熟悉V8引擎。大多数人都知道JavaScript在单线程中运行并使用回调,这对于语言引擎背后......