gpt4 book ai didi

javascript - 是否应该发布 MongoDB 插入/更新/更新/删除?

转载 作者:可可西里 更新时间:2023-11-01 10:42:51 34 4
gpt4 key购买 nike

截至目前,我在\server\publications.js 中有我的 MongoDB“选择”,例如:

Meteor.publish("jobLocations", function () {
return JobLocations.find();
});

...并且正在订阅\client\main.js 中的内容,例如:

Meteor.startup(function() {
Meteor.subscribe("jobLocations");
. . .

...但是我在\both\methods.js 中有我的插入/更新/更新/删除,像这样:

Meteor.methods({
'insertJobLocation': function(username, jobLoc, placename, st8OrProvince, postalcode, xcoord, ycoord) {
JobLocations.insert({
jl_jobloc: jobLoc,
. . .

...我从\client\templates\whatever.js 调用它们,像这样:

'submit form': function(event, template) {
. . .
Meteor.call('insertJobLocation', jobloc, placename, st8OrProvince,
postalcode, xcoord, ycoord, function(err) {
. . .

这行得通,但它是错误的[-headed]吗?

所有 MongoDB 代码是否应该发布/订阅(IOW,位于\server\publications.js 和\client\main.js?

最佳答案

根据我的阅读,经验法则是订阅您需要在客户端浏览器上显示的内容。
这将返回 JobLocations 集合中的所有项目/字段,因此如果此集合很大,您可能希望限制使用 queryfield 发布的内容> 参数:

之前:

Meteor.publish("jobLocations", function () {
return JobLocations.find();
});

一旦获得大量数据(或想隐藏敏感数据!):

Meteor.publish("jobLocations", function (jobLocParam) {
var selector = {
jobLoc: {$in: jobLocParam},
}
var options = {
sort: {placename: 1},
fields: {jobLoc: 1, placename: 1},
limit: 20
}
return JobLocations.find(selector, options);
});

所有这些字段都是可选的,但我想我会给你几个例子。 selector 可以只是 {} 如果您想要返回所有内容,并且您可以使用 fields 参数限制发布的字段(也是可选的) .发布也可以采用参数,因此如果您愿意,可以在创建模板时通过发布传递 jobLoc 或它们的数组。

希望对您有所帮助!

关于javascript - 是否应该发布 MongoDB 插入/更新/更新/删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32869591/

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