你可以
map()。
Array.map()与mongoose一起使用,因为它返回一个数组,与使用相比,简单使用更好
$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文档。



