【发布时间】:2016-01-20 11:42:56
【问题描述】:
我有历史文件。我想查找具有特殊历史条目的文档。 历史元素:
{
name:"added",
date: Isodate
}
查询应获取名称被“添加”且日期低于参考的所有文档。如果日期更高,则应跳过该文档。一个文档可以有多个“添加”事件
这是我的查询,查找所有添加历史元素在 7 天范围内的文档,如果一个元素小于 7 天,则不应显示该文档:
var expiryDate = new Date();
expiryDate.setDate(expiryDate.getDate() - 7);
var query = {
$and: [
{
history: {
$elemMatch:{
event: "added",
date: {
$not: {
$gte: expiryDate.toISOString()
},
}
}
}
},
{
history: {
$elemMatch: {
event: "added",
date: {
$lt: expiryDate.toISOString()
}
}
}
}
]
}
来电:
self.db.items.find(query).toArray(function (err, items) {
if(items)
console.log(items.length);
});
问题是,只有 $lte 部分有效。如果有一个大于参考的日期,它将被输出。
【问题讨论】:
标签: mongodb