聚合查询以匹配同一文档

时间:2015-09-22 18:37:23

标签: php mongodb

我需要编写一个查询,返回所有文档中的'' (时间戳)小于某个日期(文件是3天)并且' ts'等于/匹配' mt' (修改时间)同一文件。我们的想法是返回所有尚未修改的文档。

db.posts.find(
    {   
        "ts"       : { $lt: ISODate("2015-09-19T20:44:35Z") },
        "mt"       : "ts",
        "category" : "foo"
    }
)

以上显然是错误的。我正在使用聚合框架试图解决这个问题,但愿意接受建议。这需要从PHP执行。

1 个答案:

答案 0 :(得分:1)

由于我不知道PHP(对我来说它是可编程超链接意面的首字母缩写词),我将其作为社区维基回答发布,以便其他人可以扩展它。

实际上,您不需要聚合来执行此操作。您只需使用$where clause即可实现此目的:

db.collection.find({
  ts:{ $lt: ISODate("2015-09-19T20:44:35Z") },
  $where: "this.mt == this.ts"
})

其他人可能会将此翻译为PHP。

相关问题