map()
ができます 。 Array.map()
を使用します 配列を返すのでマングースを使用します。$group
を使用する方がよいでしょう。 _id
$push
を使用するよりも
const subCategory = (await SubCategory.aggregate([
{ '$match': { category: "dining" } },
{ '$group': { '_id': "$name" } }
])).map(({ _id }) => _id);
またはCursor.map()
基になるCollection
を使用する場合 コアドライバーから:
const subCategory = await SubCategory.collection.aggregate([
{ '$match': { category: "dining" } },
{ '$group': { '_id': "$name" } }
]).map(({ _id }) => _id).toArray();
find()
とほとんど同じです 「明確な」結果が必要ない場合:
const subCategory = (await Subcategory.find({ category: "dining" }))
.map(({ name }) => name);
または、Cursor.map()
を使用します
const subCategory = await Subcategory.collection.find({ category: "dining" })
.map(({ name }) => name).toArray();
distinct()
を使用することもできます 、基本的に集計プロセスとmap()
のバリエーションを実行します 「内部」(「フィールド部分のみを返す」であり、個別の集計方法ではありません):
const subCategory = await SubCategory.distinct("name",{ category: "dining" });
MongoDB自体はBSONドキュメント以外のものを返しません。また、単純な文字列はBSONドキュメントではありません。