【问题标题】:Limit number of field return from mongodb in Meteor在 Meteor 中限制从 mongodb 返回的字段数
【发布时间】:2014-01-13 16:28:56
【问题描述】:

我有一个存储文档的集合,其中包含电子邮件、电话号码等用户信息。

例如,我希望能够只返回文档中存在的 5 个字段。

电子邮件:[a@a.com, b@b.com]

手机:[012345, 6789]

国家:美国

服务:[批发、零售]

邮编:30001

城市:纽约

它会返回:

a@a.com,012345,美国,批发,30001

或者如果文档是

服务:[批发、零售]

邮编:30001

城市:纽约

它会返回:

批发,30001,纽约

基本上将返回的字段数限制为5个字段,如果该字段是数组,则只返回该数组中的第一项。

我的英语不是很好,但我已尽力解释我的问题,如果有任何不清楚的地方,我很乐意尝试进一步解释。

非常感谢任何帮助。

编辑:即使我可以对车把/空格键而不是光标施加这种限制也可以。什么都行~

【问题讨论】:

    标签: javascript mongodb meteor


    【解决方案1】:

    我们的想法是将您的集合转移到另一个(结果)数组中,并在您的车把模板中检索此数组:

    Users  = new Meteor.Collection("users"); 
    LIMIT =4;
    
    Template.userShow.users = function () {
        var users = Users.find().fetch();
        for (var i = 0; i < LIMIT; i++) {
            result[i] =  users[i];  
        }
        return result ;
    };
    

    【讨论】:

    • 这确实有效,但它仍然不考虑作为数组的字段。但是通过在 for 循环中使用 if 语句,这可能并不难。谢谢。我想我明白了!
    • 我不明白——这不只是限制用户数量吗?我认为目标是限制一个用户的字段数量..
    • 如果只是用户数量,这个答案就大材小用了——用 users.find({}, { limit: 5});
    • @RuneJeppesen 这可以限制字段。首先,您在模板中执行 {{#each users}}。然后在它下面放{{#each users_1 this}},然后把上面的模板函数放在users_1中。再次阅读,我认为海报不是那个意思,但在 5 小时前阅读它时,我立即有了这个想法,并尝试并成功了。编辑:如果有人好奇我是如何做到的,我很乐意分享当前代码。
    • 我强烈推荐《发现流星》这本书!
    【解决方案2】:

    使用Field Specifiers 选择您想要的。

    【讨论】:

    • 我不想指定字段名称。我只想返回它在文档中找到的前 5 个字段。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-13
    • 2017-08-13
    • 1970-01-01
    相关资源
    最近更新 更多