const queryList = event.queryList; const query = queryList.reduce((acc, field) => { acc[`$or`] = acc[`$or`] || []; acc[`$or`].push({ [field]: _.exists(true) }); return acc; }, {}); const [reslist, indexMap] = await Promise.all([ col.where(query).limit(event.limit).get(), new Map(), ]); const list = reslist.data; list.forEach((doc, index) => indexMap.set(doc._id, index)); list.sort((a, b) => indexMap.get(a._id) - indexMap.get(b._id)); console.log(list); ps = list;和 const queryList = event.queryList; const query = _.or(queryList.map(field => ({[field]: _.exists(true)}))); reslist = await col.where(query) .limit(event.limit) .get(); const list = reslist.data const order = event.queryList list.sort((a, b) => { const indexA = order.indexOf(a._id); const indexB = order.indexOf(b._id); return indexA - indexB; }); console.log(list); ps = list。这两段的代码有什么区别,那个能减少对云数据库的调用次数
时间: 2023-07-15 09:11:05 浏览: 67
CSharp_List.zip_C# list_C#中list_C#中list的用法_C#怎么引用List_c# list
5星 · 资源好评率100%
这两段代码的功能是相同的,都是根据指定的查询字段查询云数据库中的数据,并将结果按照查询字段的顺序进行排序。
但是第二段代码使用了更简洁的语法来构建查询,通过一次性构建完整的查询表达式,能够减少对云数据库的调用次数,因此更加高效。同时,第二段代码也使用了 `map` 函数来构建查询表达式,这使得查询字段的数量可以动态地传递给函数,更加灵活。因此,建议使用第二段代码来实现该功能。
阅读全文