用mongoose.js

时间:2015-11-30 02:48:31

标签: node.js mongodb mongoose

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

我举一个例子来澄清我正在尝试做什么。假设我有一组用户,他们可以拥有多个与他们相关的预订文档。我需要查找所有居住在某个位置且至少有一个预订的用户,其开始日期早于今天。

模型如下:

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) {
        //...
    });

任何帮助或见解都会很棒

1 个答案:

答案 0 :(得分:1)

 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)
        }
 });

请尝试这个!!