我有一个拥有Places的Mongoose模型。每个地方都有一个lat / lng。我可以定义一个名为 distance 的Mongoose virtual attribute,用于按升序对地点进行排序。从距离虚拟属性中引用用户位置信息(假设它现在存储在会话变量中)的最佳方法是什么?
答案 0 :(得分:1)
对于涉及外部数据的任何事情,向模式添加method将是比虚拟财产更好的选择。
答案 1 :(得分:0)
我正在解决类似的问题。问题是,如果你想对单个值执行操作但是我正在检索列表并希望将新的虚拟字段注入列表中的每个记录,方法很好 - 但是使用会话数据来生成字段。要做到这一点安全(避免全局变量),我想我需要使用QueryStream并使用ArrayFormatter注入新字段,该会话变量将会话变量作为构造函数参数
这看起来也像LINQ的工作,所以另一种方法可能是使用LINQ到JS的一个端口。
答案 2 :(得分:-2)
如果你更喜欢使用虚拟,你可以在NodeJs全局变量中存储用户位置信息。例如,可以在用户登录后设置此代码:
global.user_location = user.location;