簡體   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