find()和sort()在Mongoose中意味着什么?

时间:2016-06-28 16:31:35

标签: node.js mongodb

我是猫鼬新手,所以有些事情我不太了解。

代码如下:

问题是

1我找不到两个参数here(就像find({})),为什么在这段代码中找到两个参数?

2什么"排序(排序+排序)"意思 ?我很困惑。

    var sort = req.query.sort || "created";
    var order = (req.query.order === "asc" ? "-" : "");
    var limit = req.query.limit || "20";
    var offset = req.query.offset || "0";

    Opportunities.find(filterObject, '-email')
            .sort(order + sort)
            .skip(offset)
            .limit(limit)
            .populate('tags')
            .populate('location')
            .exec(function (err, opportunities) {
                if (err) return handleError(res, err);
                return res.json(200, opportunities);
            });

1 个答案:

答案 0 :(得分:2)

second argument to find是结果对象的projection。也就是说,它是要在查询找到的每个结果对象中包含或排除的字段列表。 If you use field names prefaced by minus signs-foo),那么您表示您希望之外的所有字段都列出了字段。因此,参数-email表示,"在向我显示结果时,排除email字段,但包括所有其他字段"。

The sort function也可以使用带或不带减号的字段名称,指示结果是按降序还是按升序排序:

  

除非路径名以-作为前缀,否则每个路径的排序顺序都是升序的,将被视为降序。

order变量是单字符字符串-或空字符串,基于所需的排序方向。这前面是用于对结果进行排序的字段名称(即sort变量)。