填充mongoose.js后查询数组

我试图在填充相应的对象之后查询引用数组。 我有一种感觉,我要么没有使用正确的操作$ …或者我的方法不是正确的方式去做我需要做的事情。

我举一个例子来澄清我正在尝试做什么。 假设我有一个用户的集合,可以有多个与他们相关的预订文档。 我需要find所有住在某个位置的用户,并且至less有一个预订的开始date是在今天之前。

模型是沿着的:

var Booking = new mongoose.Schema({ starts_at: { type: Date }, ends_at: { type: Date }, //... }); var User = new mongoose.Schema({ name: String, location: String, bookings: [{ type: mongoose.Schema.Types.ObjectId, ref: 'Booking' }], //... }); 

我正在尝试的代码/查询是沿着的:

 User.find({ 'location': 'some place' }) .populate('bookings') .where({ 'bookings.starts_at': { $lte: new Date() } }) .exec(function(err, users) { //... }); 

任何帮助或见解都会很棒

  User .find({ 'location': 'some place'}) .populate('bookings', null, 'starts_at' : { $lte: new Date()}) .exec(function(err, result) { if (!err) { console.log(result); } else { console.log(err) } }); 

请试试这个!