MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Zwróć wynik tylko jako tablica wartości

Możesz map() . Użyj Array.map() z mangustą, ponieważ zwraca tablicę, a lepiej jest po prostu użyć $group _id niż przy użyciu $push

const subCategory = (await SubCategory.aggregate([
  { '$match': { category: "dining" } },
  { '$group': { '_id': "$name" } }
])).map(({ _id }) => _id);

Lub za pomocą Cursor.map() jeśli używasz podstawowej Collection z podstawowego sterownika:

const subCategory = await SubCategory.collection.aggregate([
  { '$match': { category: "dining" } },
  { '$group': { '_id': "$name"  } }
]).map(({ _id }) => _id).toArray();

Podobnie z find() jeśli nie chcesz „wyraźnych” wyników:

const subCategory = (await Subcategory.find({ category: "dining" }))
  .map(({ name }) => name);

Lub za pomocą Cursor.map()

const subCategory = await Subcategory.collection.find({ category: "dining" })
  .map(({ name }) => name).toArray();

Możesz także użyć distinct() , który zasadniczo stanowi odmianę procesu agregacji i map() „pod maską” ( „zwróć tylko część pola”, a nie odrębną metodę agregacji):

const subCategory = await SubCategory.distinct("name",{ category: "dining" });

Sam MongoDB nie zwróci niczego poza dokumentem BSON, a prosty ciąg znaków NIE jest dokumentem BSON.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Rusztowania Yeoman, Mongoose i MongoDB

  2. Wysyłanie zapytań o rozmiar tablicy wewnętrznej w MongoDB

  3. Uruchom skrypt javascript (plik .js) w mongodb, w tym inny plik w js

  4. Mongoose posortuj zagregowany wynik

  5. Uzyskaj nazwy wszystkich kluczy w kolekcji