如果要按日期查询,则需要生成合适的 MongoDB 时间戳。为此,您可以使用 Date 类。
例如,如果您想计算两个日期之间的条目数量,您可以尝试类似以下的查询:
db.oplog.rs.count(
{
ts:
{
$gt: Timestamp(new Date("2020-02-01").getTime() / 1000, 1),
$lt: Timestamp(new Date("2020-03-01").getTime() / 1000, 1)
}
}
);
您必须始终将Date 毫秒除以1000,因为Timestamp 类在1970-01-01 之后运行秒。
这是另一个示例查询,它排除了oplog 中的一些非常常见的条目,例如"periodic noop":
db.oplog.rs.find(
{
ts:
{
$gt: Timestamp(new Date("2020-02-01").getTime() / 1000, 1),
$lt: Timestamp(new Date("2020-03-01").getTime() / 1000, 1)
},
"o.msg":
{
$ne: "periodic noop"
},
"ns" : {
$ne: "config.system.sessions"
}
}
).limit(5).pretty();