在mongoose中使用$map和find的方法如下:
const mongoose = require('mongoose');
const mySchema = new mongoose.Schema({
myArray: [{
name: String,
age: Number
}]
});
const MyModel = mongoose.model('MyModel', mySchema);
MyModel.aggregate([
{
$project: {
mappedArray: {
$map: {
input: {
$filter: {
input: '$myArray',
as: 'item',
cond: { $gte: ['$$item.age', 18] }
}
},
as: 'item',
in: {
name: '$$item.name',
age: '$$item.age'
}
}
}
}
}
])
.exec((err, result) => {
if (err) {
console.error(err);
} else {
console.log(result);
}
});
上述代码中,我们使用了aggregate方法来进行聚合操作。在$project阶段,我们使用$map来遍历myArray字段,并使用$filter来筛选出年龄大于等于18的项。然后,我们将筛选后的结果映射为只包含name和age字段的对象。最后,我们通过exec方法执行聚合操作,并处理结果或错误。
这样,你就可以在mongoose中使用$map和find来操作数组字段了。
注意:以上代码仅为示例,实际使用时需要根据你的数据结构和需求进行相应的调整。
领取专属 10元无门槛券
手把手带您无忧上云