2016-05-09 3 views
0

私はmodel.find()のさまざまなバリエーションを使用しようとしましたが、私は何もしません。mongoose model.find()を使用して、1つのフィールドのすべてのエントリを取得します。

以下のコードは私が扱っているコードですが、すべてのフィールドが1つずつ表示され、「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

答えて

1

何がprojectionと呼ばれて探している:

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

find関数の2番目のパラメータは、返すためにどのフィールド伝えます。あなたにも_idをしたくない場合は、使用:{_id:0, iframe:1}

ので、同様:

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

はしかし、投影はあなたに明確な値を与えるものではありません。これは、繰り返したいと思うフィールドだけを返します。

+0

ああ、これは2番目のパラメータの仕組みです説明をありがとう! – KujAslani

+0

probsはありません。私の答えを更新して、 '投影法 'はあなたに別個の値を与えるわけではない、と知っています。 –

1

projectionパラメータを使用して、結果に含めるフィールドを指定することができます。

db.collection.find(クエリ、投影)

見つける()は、投影引数が含まれている場合、マッチングドキュメントは、投影フィールドと_idフィールドを含みます。オプションで_idフィールドを除外できます。

投影パラメータは、次の形式の文書を取る:フィールドを含むように

1又は真:

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

<boolean>値は、次のいずれかであることができます。フィールドが明示的に投影パラメータで返されると指定されていなくても、find()メソッドは常に_idフィールドを含みます。

フィールドを除外するには、0またはfalseを指定します。

フィールドを含めると、_idフィールドの場合にフィールドを明示的に除外できます。

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