大佬教程收集整理的这篇文章主要介绍了node.js – Google Datastore合并(联合)多组实体结果以实现OR条件,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
由于Datastore does not have support the OR operator的事实,我需要运行多个查询并结合结果.
我计划运行多个查询,然后将结果合并到一个实体对象数组中.我已经有一个查询工作了.
问题:合并数据存储区返回的两个(或多个)实体集合(包括重复数据删除)的合理有效方法是什么?我相信这将是一个集合论的“联合”运作.
以下是基本查询大纲,它将使用一些不同的过滤器多次运行,以实现所需的OR条件.
//Set requester username const requester = req.user.userName; //Create datastore query on Transfer request kind table const task_history = datastore.createQuery('Task'); //Set query conditions task_history.filter('requester',requester); //Run datastore query datastore.runQuery(task_history,function(err,entities) { if(err) { console.log('Task History JSON unable to return data results. Error message: ',err); return; //If query works and returns any entities } else if (entities[0]) { //Else if query works but does not return any entities return empty JSON response res.json(entities); //HOW TO COMBINE (UNION) MULTIPLE SETS OF ENTITIES EFFICIENTLY? return; } });
此方法解决了在尝试直接组合通过常规非键仅查询获取的实体列表时可能遇到的几个问题:
>你不能正确地重复删除,因为你无法区分具有相同值的不同实体和出现在乘法查询结果中的同一实体之间的区别
>按属性值比较实体可能很棘手,并且比仅比较实体键肯定更慢/更昂贵
>如果您无法在单个请求中处理所有结果,那么在不实际使用它们的情况下读取它们会产生不必要的数据存储成本
>在处理实体密钥时,分割多个请求中的实体处理(例如,通过任务队列)要简单得多
还有一些缺点:
以上是大佬教程为你收集整理的node.js – Google Datastore合并(联合)多组实体结果以实现OR条件全部内容,希望文章能够帮你解决node.js – Google Datastore合并(联合)多组实体结果以实现OR条件所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。