Mui*_*rik 1 mongoose mongodb aggregation-framework
在我的 MongoDB 后端中,我想创建一个端点,该端点返回名为department. 现在,如果我在 IntelliShell 中执行此操作,我会执行以下操作:
db.staffmembers.distinct( "department" )
Run Code Online (Sandbox Code Playgroud)
这将返回一个包含所有值的数组department。
但是如何在像这样的 Mongoose find() 查询中返回所有唯一值?
Staffmember.find({ name: 'john', age: { $gte: 18 }});
Run Code Online (Sandbox Code Playgroud)
换句话说,如果我想使用find()上面的like 来返回department“staffmembers”集合中的所有唯一值,语法会是什么样的?
您可以使用.aggregate()您的条件并将其传递到$matchstage,然后使用$addToSetinside$group来获取唯一值。
let result = await Staffmember.aggregate([
{ $match: { name: 'john', age: { $gte: 18 }} },
{ $group: { _id: null, departments: { $addToSet: "$department" } } }
]);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4156 次 |
| 最近记录: |