【发布时间】:2016-02-29 14:26:48
【问题描述】:
我要做的是获取用户的查询客户端(通过搜索功能),通过 Meteor 方法将其发送到服务器,如果有搜索结果,将该查询插入另一个 MongoDB 实例?我需要这个才能将用户的搜索结果显示到客户端。
来自服务器端的类似这样的东西:
UserSearch: function(query){
var init = Table.find({userId: this.userId}, {data: {Name: query}});
Search.insert({userId: this.userId, data: init});
},
显然,这是行不通的。但我正在寻找一种方法,允许将查询从一个数据库插入到新数据库中。
【问题讨论】:
-
您不能插入游标(这是
find()返回的内容),但您可以插入一个数组,这是在游标上调用fetch()将返回的内容。不过,我建议不要这样做,因为这种方法会导致严重的性能损失。如果你想将数据返回给用户一次,你可以直接从方法中返回。 -
你的意思是插入结果还是只插入查询参数?
-
只插入结果。
-
为什么有两个 MongoDB 实例?你想解决什么问题?
-
@MabehAl-ZuqYadeek 在页面视图之间共享信息有更好的解决方案,例如将临时信息存储在您的网络服务器上的用户会话数据中,或者让浏览器将其作为 POST 参数传递。将它放入数据库(与您的主数据库不同的数据库,以启动)没有任何意义,只是在几毫秒后检索它然后删除它。数据库用于持久信息。为什么您需要共享信息?通常您会将搜索查询作为请求结果页面的一部分而不是之前执行。