我需要编写一个查询,返回所有文档中的'' (时间戳)小于某个日期(文件是3天)并且' ts'等于/匹配' mt' (修改时间)同一文件。我们的想法是返回所有尚未修改的文档。
db.posts.find(
{
"ts" : { $lt: ISODate("2015-09-19T20:44:35Z") },
"mt" : "ts",
"category" : "foo"
}
)
以上显然是错误的。我正在使用聚合框架试图解决这个问题,但愿意接受建议。这需要从PHP执行。
答案 0 :(得分:1)
由于我不知道PHP(对我来说它是可编程超链接意面的首字母缩写词),我将其作为社区维基回答发布,以便其他人可以扩展它。
实际上,您不需要聚合来执行此操作。您只需使用$where clause即可实现此目的:
db.collection.find({
ts:{ $lt: ISODate("2015-09-19T20:44:35Z") },
$where: "this.mt == this.ts"
})
其他人可能会将此翻译为PHP。