MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

MONGO ottiene solo il nome dei documenti ma non tutti i documenti

Puoi usare il secondo parametro di .find() metodo per specificare una proiezione :

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

che restituisce:

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

Oppure puoi utilizzare Aggregation Framework per ottenere un singolo documento con una matrice di nomi:

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

che restituisce:

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

Il primo dovrebbe essere il modo più veloce se hai un indice su company_name . In tal caso, la tua query non ha bisogno di scansionare la raccolta e può utilizzare solo l'indice per ottenere i dati richiesti (query coperta ).