MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

MONGO erhält nur den Namen der Dokumente, aber nicht die gesamten Dokumente

Sie können den zweiten Parameter von .find() verwenden -Methode, um eine Projektion anzugeben :

db.companies.find({}, { _id: 0, company_name: 1 })

was zurückgibt:

{ "company_name" : "gmc" }
{ "company_name" : "tesla" }
...

Oder Sie können Aggregation Framework verwenden, um ein einzelnes Dokument mit einem Array von Namen zu erhalten:

db.companies.aggregate([{ $group: { _id: null, company_names: { $push: "$company_name" } } }])

was zurückgibt:

{ "_id" : null, "company_names" : [ "gmc", "tesla", ... ] }

Der erste sollte der schnellste Weg sein, wenn Sie einen Index für company_name haben . In diesem Fall muss Ihre Abfrage keine Sammlung scannen und kann nur den Index verwenden, um abgefragte Daten zu erhalten (abgedeckte Abfrage ).