返すフィールドを選択する
CoddyのNode.jsジャーニー「MongoDBによるデータベース」セクションの一部。レッスン 10/29。
リストページでは、ほかのすべてのフィールドを表示せずにタイトルだけが必要な場合があります。プロジェクションを使うと、データベースが返すフィールドを選択できます。これをfindの第2引数に指定します。値に1を指定すると、そのフィールドが含まれます。
await books.find({}, {projection: {title: 1, _id: 0}}).toArray();
// [{title:'Dune'}, {title:'Kindred'}, {title:'Emma'}]空のフィルターを指定すると、すべての本が対象になります。プロジェクションは返される各ドキュメントを変更しますが、一致する本は変わりません。MongoDBでは通常、ほかのフィールドを選択しても_idが含まれます。これを0に設定すると、省略されます。Dataタブに保存されているドキュメントには、元のフィールドがすべて保持されます。
チャレンジ
簡単これは小さな練習用プロジェクトです。セットアップは用意されているので、exercise.jsだけを編集してください。
すべての本について、title と year のみを返してください。_idと genre は省略します。実行してGET /resultを呼び出してください。最初の結果は{"title":"Dune","year":1965}です。Data タブを確認してください。genre は引き続きストレージに存在しています。
自分で試してみよう
export async function exercise(books) {
return await books.find().toArray();
}
MongoDBによるデータベースのすべてのレッスン
自分で練習してみよう: Expressプレイグラウンド