按日期时间过滤子文档

时间:2015-07-14 23:42:13

标签: mongodb mongoose aggregation-framework

我有以下模型

var messageSchema   = new Schema({
    creationDate:   { type: Date, default: Date.now },
    comment:        { type: String },
    author:         { type: Schema.Types.ObjectId }
});
var conversationSchema = new Schema({
    title:          { type: String },
    author:         { type : Schema.Types.ObjectId },
    members:        [ { type: Schema.Types.ObjectId } ],
    creationDate:   { type: Date, default: Date.now },
    lastUpdate:     { type: Date, default: Date.now },
    comments:       [ messageSchema ]
});

我想创建两个方法来获取用户或conversationId的日期之后生成的注释。

用户

我尝试使用以下方法

var query = { 
    members : { $all : [ userId, otherUserId ], "$size" : 2 }
    , comments : { $elemMatch : { creationDate : { $gte: from } } } 
};

如果在指定日期(at)之后没有注释,则该方法返回[]或null

通过conversationId

当我尝试按用户ID

获取时也是如此
var query = { _id : conversationId
    , comments : { $elemMatch : { creationDate : { $gte: from } } } 
};

有没有办法让方法返回带有空注释的会话信息?

谢谢!

0 个答案:

没有答案