[英]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.