Node.js Mongoose:从基于另一个模型的结果中排除对象

Node.js Mongoose:从基于另一个模型的结果中排除对象,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,假设我有一个用户和组模型,组有用户,比如 var-GroupSchema=mongoose.Schema({ 名称:String, 用户:[{type:mongoose.Schema.ObjectId,ref:'User'}] }); 我如何查询以获取所有用户,但不包括正在使用的用户 Group.users,我已经通过先查询Group然后手动筛选所有用户来完成这项工作 var groupP=Group.findById(Group_id).populate('users'); var use

假设我有一个
用户
模型,组有用户,比如

var-GroupSchema=mongoose.Schema({
名称:String,
用户:[{type:mongoose.Schema.ObjectId,ref:'User'}]
});
我如何查询以获取所有用户,但不包括正在使用的用户
Group.users
,我已经通过先查询
Group
然后手动筛选所有
用户来完成这项工作

var groupP=Group.findById(Group_id).populate('users');
var userP=User.find();
承诺,道具({
组:groupPromise.exec(),
用户:usersPromise.exec()
})
.然后(函数(结果){
//这给出了预期的结果,但如果可能的话,我正在寻找一个更直截了当的猫鼬解决方案
var users=differenceWith(result.users,result.group.users,(a,b)=>{返回a.\u id.toString()==b.\u id.toString()});
})

您可以尝试下面的查询

var groupP = Group.findById(group_id);
var userP = User.find({_id:{$nin:groupP.users}});

这是一条路要走,我想没有办法一次完成查询。谢谢