【发布时间】:2015-02-14 18:55:53
【问题描述】:
我正在尝试过滤 oplog.rs 以查看在某个日期之后记录的操作。但比较运算符似乎不适用于 MongoDB 中的日期:
db['oplog.rs'].find({ts: {$gte: ISODate("2014-12-15T00:00:00Z")}})
令人困惑的是,许多在线资源都说要这样做,但显然行不通。我想返回 ts 字段至少为 12 月 15 日或更近的结果,但我得到的结果明显早于此期间。如果我用 $lte 切换 $gte 则根本不会显示任何结果,即使在此指定日期之前和之后肯定有条目。
另外,我似乎也无法对结果进行排序。如果我试试这个:
db['oplog.rs'].find().sort({ts: -1})
我明白了:
error: {
"$err" : "Runner error: Overflow sort stage buffered data usage of 33566005 bytes exceeds internal limit of 33554432 bytes",
"code" : 17144
}
如果我可以过滤结果以使其更新,我希望它能克服这个排序错误,但我什至无法使用 MongoDB 的基本运算符来做到这一点。如何按日期过滤查找操作的结果?
【问题讨论】:
标签: mongodb