gpt4 book ai didi

javascript - meteor js和mongodb : how to group many collections into one

转载 作者:行者123 更新时间:2023-12-02 17:04:33 28 4
gpt4 key购买 nike

我的应用程序是产品列表。

我有太多,想要将它们分组,这样我就可以重构我的发布/订阅代码(以及我的模板)。

假设我的 mongodb 中有 4 个不同的集合:气球、球、帐篷、茶。

我需要将它们分组到新创建的 foobar 中。然后我可以编写两个发布/订阅语句而不是 4 个,并通过执行以下操作来访问我的数据:

在客户端:

Foo = new Meteor.Collection('foo');
Bar = new Meteor.Collection('bar');

在 html 模板中

{{#each foo.balloons }}

<p>{{ size }}</p>
<p>{{ price }}</p>

{{/each}}

或者在另一个html模板中

{{#each bar.tents }}

<p>{{ size }}</p>
<p>{{ price }}</p>

{{/each}}

最佳答案

就我个人而言,我不会将它们分为多个集合。我会添加一个变量,例如“group”,其值为“balloons”、“balls”、“tents”或“tea”。

当您订阅时,您可以选择同时订阅一个或多个群组。然后在你的助手中,只需执行以下操作:

Template.foo.helpers({
balloons : function() {
return Foo.find({
"group" : "balloons"
});
},
tents : function() {
return Foo.find({
"group" : "tents"
});
}
});

Template.bar.helpers({
balls : function() {
return Foo.find({
"group" : "balls"
});
},
tea : function() {
return Foo.find({
"group" : "tea"
});
}
});

根据要求更新:

<body>
{{> foo}}
{{> bar}}
</body>

<template name="foo">
<div id="balloons" class="product-list">
{{#each balloons}}
{{> productItem}}
{{/each}}
</div>
<div id="tents" class="product-list">
{{#each tents}}
{{> productItem}}
{{/each}}
</div>
</template>

<template name="bar">
<div id="balls" class="product-list">
{{#each balls}}
{{> productItem}}
{{/each}}
</div>
<div id="tea" class="product-list">
{{#each tea}}
{{> productItem}}
{{/each}}
</div>
</template>

<template name="productItem">
<div class="product">
<h1>{{title}}</h1>
<p>{{description}}</p>
</div>
</template>

关于javascript - meteor js和mongodb : how to group many collections into one,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25383118/

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