一个电商项目,自己写了一个搜索组件,这个搜索组件会把候选词借由searchModel发给云端Index函数,index函数再发给对应业务层searchService去请求云数据库获取匹配的结果(以数组存储)。流程如下:
我在业务层设定的是搜索云数据库的product集合,指定只筛选product_name出字段,也就是我输入商品的名称就会返回对应的带product_name字段的数组,比如我输入"花生 300g",函数会返回:
(一) 怎么在不破坏数据的情况下只修改数组的相关字段名?
我想在云端函数获取到数组后把product_name这个字段名改为query_name给前端用,不然对不同集合的搜索请求都要在前端修改相关字段很不利于通用。
之前搜了下有人用JSON方法去改,于是我改成了
但是数据回到searchModel时发现还是product_name字段,不知道小程序是不是在js文件不能用JSON方法。
(二)
根据理想情况,最后我在搜索组件.js会获得这么一个结果数组searchResult = [
{query_name:'A'},
{query_name:'B'},
{query_name:'C'}
........
]
我想把这个数组显示在页面的一个matchList数组上,但是不知道怎么让对象数组只按某字段去遍历,我感觉类似于:
this.setdata({
matchList: searchResult[x].query_name
})
别跟我说另用数组循环遍历,几十万数据的时候你给我循环遍历多久?
求大神指教?
建议用聚合