node.js - 使用 mongoose.js 填充后查询数组

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

任何帮助或见解都会很棒

最佳答案

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

请尝试一下!!

关于node.js - 使用 mongoose.js 填充后查询数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33990740/

相关文章:

mongodb - 如何识别 meteor 内运行的minimongo的端口?

python - mongoengine 引用字段查询

javascript - es6 传播运算符 - mongoose 结果副本

node.js - Mongoose,删除在聚合内不起作用

node.js - 如何为 Sequelize 数组分配大小限制?

mongodb - mgo - 查询性能似乎一直很慢(500-650 毫秒)

node.js - 任何用于在 Node.js 中可视化模块依赖关系的库?

node.js - Mongoose Pre Command 未按预期工作

javascript - 如何测试限速HTTP请求功能?

jquery - 使用 JQuery 进行 Express 和 Ajax 发布