我有一个mongoose架构,如下所示:
var wishSchema = mongoose.Schema({
foo: {
bar: String,
fooDate: Date
},
});
我正在尝试查询fooDate在特定日期之后的所有文档。我提出了这个解决方案,但似乎没有做得很好:
{
foo: {
$elemMatch: {
fooDate: { $gt: new Date('2014-01-01') }
}
}
}
我错过了什么? 提前谢谢!
答案 0 :(得分:0)
$elemMatch用于数组。您要查找的查询是:
{'foo.fooDate': {$gt: new Date('2014-01-01') }}
$elemMatch
适用于以下模式,如果foo
数组中至少有一项与指定查询(或所有指定查询)匹配,则返回结果:
var wishSchema = mongoose.Schema({
foo: [
bar: String,
fooDate: Date
]
});
如果您只需要在内部文档数组上运行一个查询,最好只使用dot notation:
{'foo.fooDate': {$gt: new Date('2014-01-01') }}
希望这有帮助!