【问题标题】:Meteor - How to specify fields to return AND sort?Meteor - 如何指定要返回和排序的字段?
【发布时间】:2015-02-05 22:46:01
【问题描述】:

从 MongoDB docs,我知道您可以使用以下方式指定要返回的字段:

db.products.find( { qty: { $gt: 25 } }, { item: 1, qty: 0 } )

您可以使用sort()对行进行排序

db.bios.find().sort( { name: 1 } )

但是,SO 上的several solutions 建议采用这种格式:

DrawingHistory.find({}, {sort: {time: -1}});
Aphorisms.find({}, {sort: {date_created: -1}});

所以我尝试了这些,但没有一个成功:

return Questions.find({}, {text: 1, options: 1}).sort({order: 1}); // Returns nothing
return Questions.find({}, {text: 1, options: 1}, {sort: {order: 1}}); // Doesn't work
return Questions.find({}, {sort: {order: 1}}, {text: 1, options: 1}); // Only first filter gets applied

示例文档/行:

{
    "options": [
        {
            "answer": "Answer I",
            "value": "A"
        },
        {
            "answer": "Answer II",
            "value": "B"
        },
        {
            "answer": "Answer III",
            "value": "C"
        },
        {
            "answer": "Answer IV",
            "value": "D"
        }
    ],
    "order": 1,
    "text": "Question A"
}

问题

那么,在 Meteor 中指定字段同时返回 AND 排序的正确方法是什么?

【问题讨论】:

    标签: mongodb sorting meteor mongodb-query


    【解决方案1】:

    您正在尝试使用 mongo shell API 查询,这与 Meteor find API 有所不同。在 Meteor 中,选项都是在第二个参数中传递的:

    Questions.find({}, {
        fields: {
            text: 1, 
            options: 1
        },
        sort: {
            order: 1
        }
    });
    

    【讨论】:

    • 谢谢谢谢谢谢!花了一个小时失败!我只是假设 Meteor 的 find 与 MongDB 的 find 相同。
    • 没有问题! Meteor 文档非常好 - 我认为您可以通过查看它们来解决大多数问题。
    • 是的 =_=,也许我应该在 MongoDB 的文档之前查看 Meteor 的文档...第一天使用 Meteor 并喜欢它!试图说服我的老板这很棒
    • 你能再回答我一个问题吗?为什么我把sort选项放在fields前面,fields选项就失效了?
    • 嗯,不,我不能。老实说,我对这种行为感到惊讶!
    猜你喜欢
    • 1970-01-01
    • 2016-06-15
    • 1970-01-01
    • 1970-01-01
    • 2014-11-22
    • 1970-01-01
    • 1970-01-01
    • 2018-11-26
    • 1970-01-01
    相关资源
    最近更新 更多