gpt4 book ai didi

javascript - MeteorJS - 没有用户系统,如何在客户端过滤数据?

转载 作者:行者123 更新时间:2023-11-27 23:48:56 26 4
gpt4 key购买 nike

标题可能听起来很奇怪,但我有一个网站将查询 Mongo 集合中的一些数据。但是,没有用户系统(没有登录等)。每个人都是匿名用户。

问题是我需要根据用户提供的输入文本框查询 Mongo 集合上的一些数据。因此无法使用this.userId插入一行规范,服务器端读取该规范,并将数据发送给客户端。

因此:

// Code ran at the server
if (Meteor.isServer)
{
Meteor.publish("comments", function ()
{
return comments.find();
});
}

// Code ran at the client
if (Meteor.isClient)
{
Template.body.helpers
(
{
comments: function ()
{
return comments.find()
// Add code to try to parse out the data that we don't want here
}
}
);
}

似乎有可能在用户端我根据某些用户输入过滤一些数据。但是,似乎如果我使用 return comments.find() ,服务器将向客户端发送大量数据,然后客户端将承担清理数据的工作。

根据大量数据,应该不会太多(10,000行),但是假设有100万行,我该怎么办?

我对 MeteorJS 非常陌生,刚刚完成了教程,如有任何建议,我们将不胜感激!

最佳答案

我的建议是阅读文档,特别是 the section on Publish and Subscribe .

通过将上面的发布函数的签名更改为带有参数的签名,您可以过滤服务器上的集合,并将传输的数据限制为所需的数据。

Meteor.publish("comments", function (postId)
{
return comments.find({post_id: postId});
});

然后在客户端上,您将需要一个订阅调用来传递参数的值。

Meteor.subscribe("comments", postId)

确保您已删除 autopublish包,否则它将忽略此过滤。

关于javascript - MeteorJS - 没有用户系统,如何在客户端过滤数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32882784/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com