可以使用mongoose的方法来解决,示例如下:
const mongoose = require("mongoose");
// 定义一个模型
const UserSchema = new mongoose.Schema({
name: String,
age: Number,
});
const User = mongoose.model("User", UserSchema);
// 假设我们有两个ObjectId数组
const arr1 = [mongoose.Types.ObjectId("6163ab77fa43b5af771f24ac"), mongoose.Types.ObjectId("6163ab7dfa43b5af771f24ad"), mongoose.Types.ObjectId("6163ab84fa43b5af771f24ae")];
const arr2 = [mongoose.Types.ObjectId("6163ab77fa43b5af771f24ac"), mongoose.Types.ObjectId("6163ab7dfa43b5af771f24ad")];
// 使用$in操作符将arr1中与arr2相同的ObjectId筛选出来
const users = await User.find({_id: {$in: arr1}}).exec();
// 遍历筛选出来的结果,并使用includes方法判断其在arr2中是否存在
for (let user of users) {
if (arr2.includes(user._id)) {
console.log(user); // 输出与arr2匹配的结果
}
}
在上述示例中,我们使用mongoose的$in操作符将arr1中与arr2相同的ObjectId筛选出来,然后再遍历筛选结果,并使用includes方法判断其是否在arr2中存在。这种方法比较简便,同时保证了结果的正确性。