繁体   English   中英

使用mongoose model.find()获得仅1个字段的所有条目

[英]use mongoose model.find() to get all entries of only 1 field

我试图使用不同的model.find()变体,但是没有一个可以做我想要的。

下面的代码是我正在使用的代码,但是它显示每个字段,而我只想要“ iframe”字段。

app.get('/api/videos', function (req, res) {
    Video.find({}, function (err, docs) {
       res.json(docs);
    });
});

下面的代码可以正常工作,我只得到“ iframe”字段,但是它反转了json输出,我不希望这样。 即使每个条目都是唯一的,它也不重要,但它也获得唯一的值。

app.get('/api/videos', function (req, res) {
    Video.find().distinct('iframe', function (err, docs) {
        res.json(docs);
    });
});

w ^

您在寻找什么叫做投影

Video.find({}, {iframe: 1}, function (err, docs) {
   res.json(docs);
});

find函数的第二个参数指示要返回的字段。 如果您也不想使用_id ,请使用: {_id:0, iframe:1}

像这样:

Video.find({}, {_id:0, iframe:1}, function (err, docs) {
   res.json(docs);
});

但是,投影无法为您提供独特的价值。 它仅返回您要使用的字段(以及重复项)。

您可以使用projection参数指定要在结果中包括的字段。

db.collection.find(查询,投影)

如果find()包含投影参数,则匹配的文档仅包含投影字段和_id字段。 您可以选择排除_id字段。

projection参数采用以下格式的文档:

 { field1: <boolean>, field2: <boolean> ... } 

<boolean>值可以是以下任意值:

1或true以包括该字段。 即使未明确声明要返回投影参数,该find()方法始终包含_id字段。

0或false排除该字段。

包含字段时,仅在_id字段的情况下才能明确排除字段。

app.get('/api/videos', function (req, res) {
    Video.find({}, {_id:0, iframe:1 }, function (err, docs) {
       res.json(docs);
    });
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM