Если кому-то все еще интересно это, решение может быть в MongoDB Docs :
Основной синтаксис:
db.document.find({[YOUR SEARCH PARAMETER HERE]},{[THE FIELD(S) YOU WANT RETURNED HERE]}
В документации они приводят пример, поэтому я вставил его сюда вместе с эквивалентом SQL, который должен помочь прояснить ситуацию.
Вот набор документов и структура документа:
db.inventory.insertMany( [
{ item: "journal", status: "A", size: { h: 14, w: 21, uom: "cm" }, instock: [ { warehouse: "A", qty: 5 } ] },
{ item: "notebook", status: "A", size: { h: 8.5, w: 11, uom: "in" }, instock: [ { warehouse: "C", qty: 5 } ] },
{ item: "paper", status: "D", size: { h: 8.5, w: 11, uom: "in" }, instock: [ { warehouse: "A", qty: 60 } ] },
{ item: "planner", status: "D", size: { h: 22.85, w: 30, uom: "cm" }, instock: [ { warehouse: "A", qty: 40 } ] },
{ item: "postcard", status: "A", size: { h: 10, w: 15.25, uom: "cm" }, instock: [ { warehouse: "B", qty: 15 }, { warehouse: "C", qty: 35 } ] }
]);
Вот запрос для получения полей "item" и "status" из записей, где "status = A"
db.inventory.find( { status: "A" }, { item: 1, status: 1 } )
SQL-эквивалент:
SELECT _id, item, status from inventory WHERE status = "A"
Тривиально сократить это до выбора одной записи, а не всех записей, где "status = A".